STLvector
$ Latex $ 懒得修
容器
例:string,stack,queue等
*新容器:vector
vector->动态数组,不需要定义大小
和数组的相同之处
1.下标一定从0开始
2.可以直接用数组名称 [要访问的长度] 进行访问
和数组的不同之处
1.进行输入的时候需要使用 数组名称.push_back(要输入的数值) 进行输入
2.在数组里没有元素的时候,vector数组直接访问会报错!
和vector有关的函数
1.resize() 使用方式:数组名.resize(重新分配的空间大小)
*注意resize()函数不会清空在vector里还包含着的值
*2.reverse() 使用方式:reverse(数组名称.begin(),数组名称.end());
*注意reverse()函数数组里面不能用!!!
特别注意
使用和vector有关的函数
例:
#include <bits/stdc++.h>
using namespace std;
vector <int> vec;
void print(vector <int> a){
for(int i=0;i<=a.size();i++){
cout<<a[i]<<' ';
}
}
int main(){
for(int i=0;i<=10;i++){
vec.push_back(i);
}
print(vec);
return 0;
}
输出↓

vector使用sort()函数
递增代码:
sort(数组名称.begin(),数组名称.end(),greater<数据类型>() );
递减代码:
sort(数组名称.begin(),数组名称.end(),less<数据类型>() );
或者递增之后翻转
sort(数组名称.begin(),数组名称.end(),greater<数据类型>() );
reverse(数组名称.begin(),数组名称.end());
vector 二维数组
情况1:行数确定,但列数不确定
vector<数据类型> 数组名称[行数];
情况2:行数和列数都不确定
vector<vector<数据类型> > 数组名称;
附加:迭代器(iterator)
前置知识:set(集合)
set真香之处:
放进去就自动排序、去重
实现样例代码(明明的随机数)
#include <bits/stdc++.h>
using namespace std;
set<int> s;
int n;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
int t;
cin>>t;
s.insert(t);
}
set<int>::iterator iiiiiiiiiiiiii;
for(iiiiiiiiiiiiii=s.begin();iiiiiiiiiiiiii!=s.end();iiiiiiiiiiiiii++){
cout<<*iiiiiiiiiiiiii<<' ';
}
return 0;
}

浙公网安备 33010602011771号