我使用移除擦除习语(如从矢量中删除元素)移除矢量中的空矢量时遇到一些麻烦.我该如何申请:
vector<vector<Point> > contours; // want to remove contours.at(i).empty()
contours.erase(remove(contours.begin(), contours.end(), ??? ),contours.end());
Run Code Online (Sandbox Code Playgroud)
mos*_*ald 10
你有没有尝试过:
contours.erase(remove(contours.begin(), contours.end(), vector<Point>()), contours.end());
Run Code Online (Sandbox Code Playgroud)
使用remove_if带谓词.
contours.erase(
std::remove_if(
contours.begin(), contours.end(),
[](const vector<Point>& v) { return v.empty(); }
// or a functor/plain function/Boost.Lambda expression
), contours.end()
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1087 次 |
| 最近记录: |