[問題] boost::multi_array 當中的 resize
我寫了一段 code 長這樣:
http://0rz.tw/13rR4
(包含了一些不相關的片段 不過不長 還請包涵)
compile 沒問題
但在執行的時候會掛在第 46 行
輸出下列 error msg:
video_segmentation: /usr/include/boost/multi_array/multi_array_ref.hpp:488:
boost::multi_array_ref<T, NumDims>& boost::multi_array_ref<T,
NumDims>::operator=(const ConstMultiArray&) [with ConstMultiArray =
boost::multi_array<FeaturePoint, 3u, std::allocator<FeaturePoint> >, T =
FeaturePoint, unsigned int NumDims = 3u]: Assertion
`std::equal(other.shape(),other.shape()+this->num_dimensions(),
this->shape())' failed.
Command terminated by signal 6
拜了一下估狗大神發現應該是 operator = 的問題
http://0rz.tw/kthHi
不過令人好奇的是從頭到尾我並沒有用到 = 呀
但實際上如果 comment 46 行
uncomment 47, 48
這樣的跑法就是 OK 的 為什麼?
又,multi_array 不實作 = (最起碼 dimension 不同的 =)是為什麼?這樣實在很麻煩
有沒有其他的替代品(ublas 我用過,還是 multi_array 比較簡潔)
雖然說要繞也是可以繞過這個問題
不過還是想請板友們指點一下
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.29.130
推
02/27 17:29, , 1F
02/27 17:29, 1F
→
02/27 17:29, , 2F
02/27 17:29, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章