需求
cpp 对容器的插入和删除操作
解决
insert & emplace
- insert 插入时,会先调用构造函数,再调用移动构造函数。
- emplace 插入时,只调用构造函数。
emplace 直接在容器的指定位置调用构造函数,省略了移动构造函数,效率会更高一些,推荐使用 emplace.
erase
erase 一般是需要先获取迭代器,然后再删除。
vector<int>::iterator it;
it = myvector.begin();
myvector.erase(it);
// finding the position of the element in the vector
int valueToBeDeleted = 3;
auto it = find(vector.begin(), vector.end(),
valueToBeDeleted);
if (it != vector.end()) {
vector.erase(it);
}
vector<int>::iterator it1, it2;
it1 = myvector.begin();
it2 = myvector.end();
it2--;
it2--;
myvector.erase(it1, it2);
clear
直接清空所有元素