vector要素を削除する方法
1441 ワード
//vector
#include
#include
#include
using namespace std;
int main(int argc, char const *argv[])
{
vector vec;
for (int i = 0; i < 10; i++)
{
vec.emplace_back(i);
}
// 5
// auto it = std::find(vec.begin(), vec.end(), 5);
// vec.erase(it);
// for_each(vec.begin(), vec.end(), [](int v){cout << v << endl;});
// 5
// vec.erase(vec.begin()+5);
// for_each(vec.begin(), vec.end(), [](int v) { cout << v << endl; });
// 5
// for(auto it = vec.begin(); it != vec.end();)
// {
// if(*it == 5)
// {
// vec.erase(it++);
// }
// else
// {
// it++;
// }
// }
// for_each(vec.begin(), vec.end(), [](int v) { cout << v << endl; });
// 5
vec.emplace_back(5);
vec.emplace_back(5);
auto it = std::find(vec.begin(), vec.end(), 5);
while (it != vec.end())
{
it = vec.erase(it);
it = std::find(it, vec.end(), 5);
}
for_each(vec.begin(), vec.end(), [](int v) { cout << v << endl; });
return 0;
}
4つ目は、複数の重複要素を削除する最善の方法です.
vector方式を正しく解放
std::vector tmp;
vec.swap(tmp);
cout << vec.capacity() << endl;