I
Ex ein duplizierte Element aus einem größeren Vektor zu entfernen bin versucht:Entfernen Sie doppeltes Element aus dem Vektor der Vektoren C++
6 11
7 8
6 16 17
soll ich:
6 11
7 8
16 17
Was ich habe:
vector<vector<int>>B;
vector<vector<int>>::iterator b_list;
vector<vector<int>>::iterator b_it;
vector<int>::iterator b_list_it;
vector<int>::iterator b_it_it;
for (b_list = B.begin(); b_list != B.end()-1; ++b_list)
{
for (b_it = b_list+1; b_it != B.end(); ++b_it)
{
for (int i = 0; i < (*b_list).size(); ++i)
{
for (int j = 0; j < (*b_it).size(); ++j)
{
if ((*b_list)[i] == (*b_it)[j])
{
if ((*b_list).size() > (*b_it).size())
{
(*b_list).erase((*b_list).begin());
}
if ((*b_list).size() < (*b_it).size())
{
(*b_it).erase((*b_it).begin());
}
}
}
}
}
}
In diesem Fall entfernt erase() nichts. Warum könnte es so sein? Und was könnte stattdessen verwendet werden?
Vielen Dank!
Beachten Sie, dass 'erase()' die Iterator Stabilität auswirkt. – user0042
Vielleicht möchten Sie etwas Zeit mit dem Studium der [Standard-Algorithmen] (http://en.cppreference.com/w/cpp/algorithm) –