3
我有向量的向量:如何刪除多維向量內的重複向量?
vector< vector<int> > BigVec;
它包含載體的任意數量,每一個任意大小的。我想刪除不是每個矢量的重複元素,而是與另一個矢量完全相同的矢量。我不需要保存向量的順序,所以我可以排序等。
這應該是一個非常簡單的問題來解決,但我是新來的,我的(不工作)盡最大努力:
for (int i = 0; i < BigVec.size(); i++)
{
for (int j = 1; j < BigVec.size() ; j++)
{
if (BigVec[i][0] == BigVec [j][i]);
{
BigVec.erase(BigVec.begin() + j);
i = 0; // because i get the impression deleting a
j = 1; // vector messes up a simple iteration through
}
}
}
我認爲可能有一個解決方案使用Unique(),但我無法讓它工作。
啊哈,我得到的語法錯誤,當我嘗試它。非常感激。 – David 2010-03-25 04:00:08
是的,'std :: vector'有一個'operator <'。不過,您需要使用具有兩個參數的'vector :: erase';你正在使用的只刪除一個元素;你需要刪除'std :: unique'返回的迭代器之後的所有元素。 – 2010-03-25 04:02:38
@詹姆斯麥克奈利斯:謝謝。固定。 – 2010-03-25 04:04:18