【发布时间】:2014-06-25 21:08:39
【问题描述】:
我有一个二维的不对称向量。
vector< vector<int> > Test
测试 =
2 4 6 5 7
6 5 7 9 10
5 9 10
9 10
我正在阅读第 1 行,如果其中的任何元素存在于其他行中,则将其删除。 例如.. 读取第 1 行后,我必须从其他行中删除 6、5 和 7。
但是,它不起作用
这是我正在尝试的代码
Test[i].erase(Test[i].begin()+j);
其中 i = 行,j 是列。
我的代码是:
for (i =0; i < Test.size();i++)
{
for (j=0; j < Test[i].size();j++)
{
// removed repeated element
if (i >0)
{
Test[i].erase(Test[i].begin() +j);
}
}
}
【问题讨论】:
-
请细化
is not working。我们不会神奇地发现您的代码发生了什么。 -
基于这个二维向量,我的最终输出应该看起来像 {2,4,6,5,7}{9,10},没有第三和第四行,因为它们的元素之前重复.
-
预期的输出是什么,你得到的输出是什么。如果你的擦除元素不是 i 和 j 将被关闭?
-
你能添加你的完整代码吗?一行代码不足以确定您可能遇到的错误。
-
test[i].erase(test[i].begin()+j)和test.at(i).erase(test.at(i).begin()+j)在我本地测试时都可以工作。您能否发布整个代码,以便我们检查错误是否在其他地方?