std::vector添加删除
时间: 2023-11-09 18:05:14 浏览: 64
std::vector是一个动态数组,可以通过push_back()函数在末尾添加元素,通过pop_back()函数删除末尾元素。也可以使用insert()函数在指定位置插入元素,使用erase()函数删除指定位置的元素。
例如,在vector<int> v中,要在末尾添加元素5,可以使用v.push_back(5);要删除末尾元素,可以使用v.pop_back();要在第二个位置插入元素3,可以使用v.insert(v.begin()+1, 3);要删除第三个位置的元素,可以使用v.erase(v.begin()+2)。
相关问题
std::string std::remove_if std::sort std::vector
std::string是C++标准库中的一个类,用于表示字符串。它提供了一系列操作字符串的方法。
std::remove_if是一个算法函数,用于从容器中删除满足指定条件的元素。它接受三个参数:容器的起始和结束迭代器,以及一个谓词(一个返回bool值的函数或函数对象)。它会遍历容器中的元素,对每个元素调用谓词,并删除谓词返回true的元素。
std::sort是一个算法函数,用于对容器中的元素进行排序。它接受两个参数:容器的起始和结束迭代器。根据元素的值进行比较,并重新排列容器中的元素,使其按照升序排序。
std::vector是C++标准库中的容器类,用于存储一组动态大小的元素。它提供了一系列操作向量的方法,例如在末尾添加元素、访问元素、删除元素等。
C++: 输入无序且无重复元素的容器std::vector<std::vector<int>> vec1 和 无序且无重复元素的容器std::vector<int> vec2, 将既在vec1中又在vec2中元素分别从vec1、vec2中删除,将vec1与vec2中剩余元素都添加到容器std::vector<int> vec中, 并返回vec
C++代码如下:
```cpp
#include <vector>
#include <algorithm>
std::vector<int> removeAndCombine(std::vector<std::vector<int>>& vec1, std::vector<int>& vec2) {
std::vector<int> vec;
std::vector<int> common;
// 将vec2中与vec1中某个vector中的元素相同的元素添加到common中
for (int i = 0; i < vec1.size(); i++) {
for (int j = 0; j < vec1[i].size(); j++) {
if (std::find(vec2.begin(), vec2.end(), vec1[i][j]) != vec2.end()) {
common.push_back(vec1[i][j]);
}
}
}
// 将vec1中与common中相同的元素删除
for (int i = 0; i < vec1.size(); i++) {
vec1[i].erase(std::remove_if(vec1[i].begin(), vec1[i].end(), [&](int n){return std::find(common.begin(), common.end(), n) != common.end();}), vec1[i].end());
}
// 将vec2中与common中相同的元素删除
vec2.erase(std::remove_if(vec2.begin(), vec2.end(), [&](int n){return std::find(common.begin(), common.end(), n) != common.end();}), vec2.end());
// 将vec1中剩余元素添加到vec中
for (int i = 0; i < vec1.size(); i++) {
std::copy(vec1[i].begin(), vec1[i].end(), std::back_inserter(vec));
}
// 将vec2中剩余元素添加到vec中
std::copy(vec2.begin(), vec2.end(), std::back_inserter(vec));
return vec;
}
```
该函数首先找出vec1和vec2中相同的元素,将它们从vec1和vec2中删除。然后将vec1和vec2中剩余的元素添加到一个新的vector<int> vec中,并返回vec。注意,在此过程中,我们使用了std::remove_if和std::find等STL算法来删除和查找元素。
阅读全文