这是一个2dim向量
vector< vector<int>> path2;
我填写如下:
path2[0][6 0 1 5 6]
path2[1][6 2 4 3 6]
我想知道如何通过第二维(我的意思是6,0,1,5,6和6,2,4,3,6)找到并删除此向量中的值?(我有检查主题,我知道如何为1dim向量做,但在这种情况下我没有找到任何东西)
提前谢谢
答案 0 :(得分:0)
一种简单的解决方法,可以删除找到的第一个值:
for (auto &row : path2)
{
auto itr = find(row.begin(), row.end(), x);
if (itr != row.end())
row.erase(itr);
}
删除所有找到的值:
for (auto &row : path2)
{
for (auto it = row.begin(); it != row.end();)
{
if (*it == x)
it = row.erase(it);
else
++it;
}
}
答案 1 :(得分:0)
使用类似的东西:
std::vector<int> target ={{6, 2, 4, 3, 6} } ;
path2.erase(std::remove(path2.begin(),
path2.end(),
target
),
path2.end()
);
参考: