创建vector
vector的几个别名:向量、动态数组
头文件:
#include <vector>
记得加上std命名空间,不然会报错
using namespace std;
创建vector
vector<int> A;//一维动态数组
vector<vector<int> > B;//二维动态数组
创建二维动态数组时,
常用函数
真的很常用的几个嗷
//push_back() 在向量的末尾插入值,如果有必要会扩展向量的大小
A.push_back(c);
//size() 显示向量的大小
A.size();
//begin() 返回一个指向向量开头的迭代器
//end() 返回一个指向向量末尾的迭代器
// 使用迭代器 iterator 访问值
vector<int>::iterator v = vec.begin();
while( v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
}
//访问vector中的值
cout << A[i];//此时vector退化为数组
//clear() 清除向量中的内容
A.clear();
resize()
//resize(size_type n) 调整容器大小,使其包含n个元素 size_type是无符号整型
//resize(size_type n, const value_type& val) 调整容器大小,如果当前大小小于n需要扩容,则将新元素初始化为val的副本,否则将对它们进行值初始化?.
A.resize(5);
A.resize(8,100);
如果n小于当前容器大小,则内容减少到n,删除超出范围的元素
如果n大于当前容器大小,则在末尾插入元素来扩展内容达到n的大小
如果n也大于当前容器容量,将自动重新分配已分配的存储空间?(啥意思没看懂)
reserve()
除了resize()还有一个reserve()与之对应,reserve用来改变capacity的值。
具体内容可以参考
https://www.runoob.com/note/27430
二维vector的赋值
1、push_back()
使用push_back()赋值
vector<int> A;//一维动态数组
vector<vector<int> > B;//二维动态数组
A.push_back(1);
A.push_back(2);
A.push_back(3);
B.push_back(A);
A.clear();
A.push_back(4);
A.push_back(5);
A.push_back(6);
B.push_back(A);
A.clear();
vector B中:
1 2 3
4 5 6
2、定义并赋初值或遍历赋值
vector<vector<int> > A(5,vector<int>(3,0));//5行3列,初值为0
除了赋初值也可以定义大小后再遍历赋值
3、resize()调整容器大小或遍历赋值
vector<int> A;
A.resize(m);//m行
for(int i = 0; i < m; i++) A[i].resize(n);//n列
//遍历赋值
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
a[i][j] = a;
}
}
标签:back,c++,vector,push,赋值,resize,size
From: https://www.cnblogs.com/chengzhid/p/16748034.html