vector(动态数组)
一.int型数组
vector<int> vec; //声明一个int型向量,vec为空
vector<int> b(vec) //用vec定义b
vector<int> vec(5); // vec有5个值为0的元素
vector<int> vec (10, 1); vec有10个值都是1的元素
vector<int> tmp(vec.begin(), vec.begin() + 3); //用向量vec的第0个到第2个值初始化tmp
二。string类数组
vector<string>s(10,"hello"); //s为10个hello的数组
vector<string> s(t.begin() , t.end()) //s对t进行赋值
三。结构体型数组
struct node{
int x;
int y;
};
vector <node> a; //a来存放坐标
《vector常用函数详解》:
vector <int> arr;
1.赋值 push_back()
for (int i = 0; i < 10; i++){
arr.push_back(i);
}
2.数组长度 size( )
int len = arr.size( )
3.插入元素 insert( )
arr.insert(arr.begin( )+i, k) //在第i个元素前插入 k
v.insert(v.end(),3,1); //在迭代器的最后一个元素后增加3个1
v.insert(v.end(),v2.begin(),v2.end()); //在迭代器的最后一个元素后增加v2中的数据
4.删除尾部函数 arr.pop_back()
5.删除区间函数 erase( )
arr.erase(arr.begin( )+i, arr.begin( )+j) //删除区间 第 [ i, j-1 ]的元素(从 0 开始)
arr.erase(arr.begin( )+ i) //删除第 i 个元素
只能清除vector里面的数据,但是内存空间没有释放,如果要释放内存空间,使用arr.swap(vector<int> ());
6.遍历函数
at()
front()
back()
begin()
end()
arr.at(3); //vector中第三位的数值
int front = arr.front();
int back= arr.back();
7.迭代器遍历 ( iterator 智能指针 )
(1)
for(vector<int> :: iterator it = arr.begin( ) ; it!=arr.end( );++it )
{
cout << *it << " " ;
}
(2)
vector<int>::iterator it;
it = arr.begin()+4;
cout << *it << endl; //输出第4个元素 (从 0 开始)类似 arr[4]
(3)
vector<int>arr(n);
for(vector<int>::iterator iter=arr.begin();iter!=arr.end();++iter)
{
cin >> *iter;
}
8.判断函数是否为空
bool isempty = arr.empty( );
9.大小函数
capacity() //vector实际能容纳的大小
max_size() //最大可允许的vector元素数量值
int size = arr.size();
int cap = arr.capacity();
int max = arr.max_size();
10.调整数组的大小
arr.resize( n ); //数组大小变为 n
11.清空数组
arr.resize( n ); //数组大小变为 n
【感谢您的观看】