[問題] boost::multi_array 當中的 resize

看板C_and_CPP (C/C++)作者 (無價)時間16年前 (2009/02/27 16:54), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
我寫了一段 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
應該是這行OpticalFlowInFrame load_optical_flow_info()
02/27 17:29, 1F

02/27 17:29, , 2F
OpticalFlowInFrame 是個 multi_array. 以傳值方式傳回
02/27 17:29, 2F
文章代碼(AID): #19fwf2ps (C_and_CPP)
文章代碼(AID): #19fwf2ps (C_and_CPP)