我有两个矩形向量
std::vector<cv::Rect>faces;
std::vector<cv::Rect>windows;
我需要将窗口与面孔连接起来...因为我将代码编写为
int fsize=faces.size();
for(int i=0;i<windows.size();i++)
{
faces[fsize]=windows[i];
fsize++;
}
但我认为这段代码正在创建分段错误......任何人都知道betr..or任何内置函数?
答案 0 :(得分:3)
使用insert:
faces.insert(faces.end(), windows.begin(), windows.end());
或移动内容:
faces.insert(faces.end(), std::make_move_iterator(windows.begin()),
std::make_move_iterator(windows.end()));
答案 1 :(得分:2)
您正在将faces
替换为windows
,如果windows
的元素数超过faces
,则您访问faces
的边界。
如果你的意思是Concatenating
而不是replacing
:
faces.reserve(faces.size() + windows.size());
faces.insert(faces.end(), windows.begin(), windows.end());