vector 向量 搭配algorithm
和using namespace std
1.定义
vector<int> v1:
定义一个元素为类型为int
整型的向量v1
vector<string> v2(10):
定义一个元素为类型为string
字符串类型的向量v2
初始存储空间大小为10
每个元素初始为空串
vector<node> v3:
定义一个元素为类型为node
类型的向量v3
node
是结构体等自定义数据类型
2.插入元素 push_back()
vec.push_back(1); // 向vec插入一个元素1
vec.push_back(2); // 向vec插入一个元素2
vec[1] = 3; // 直接在位置1插入元素3,原来的元素2被元素3覆盖了
// 目前vec包含 1, 3两个元素
3.删除 erase()
c.erase(p): 从c中删除迭代器p指定的元素,p必须指向c中的一个真实元素,不能等于c.end()
c.erase(b,e): 从c中删除迭代器对b和e所表示的范围中的元素,返回e
3.例子
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(int argc, const char * argv[]) {
// 1.构建整型向量vec
vector<int>vec;
// 2.读取数据:序列个数n,以及n个整数并存入向量vec
int n;
cin>>n;
for(int i=0;i<n;i++){
int t;
cin>>t;
vec.push_back(t);
}
// 3.使用Algorithm模板函数sort对vec排序:从小到大
sort(vec.begin(),vec.end());
// 4.删除向量vec中的重复元素
vec.erase(unique(vec.begin(), vec.end()), vec.end());
// 5.遍历向量vec并输出,元素中间空格隔开,末尾加换行符'\n'
int i=0;
for( i=0;i<vec.size()-1;i++){
cout<<vec[i]<<" ";
}
cout<<vec[i]<<endl;
// 6.清空向量vec
vec.clear();
printf("%d\n", int(vec.size()));
return 0;
}
输入
7
1 2 3 1 2 3 4
—— 输出 ——
1 2 3 4
0