vector容器基本概念
功能:
与数组非常相似,也称为单端数组
与普通数组的区别:
vector容器可以实现动态拓展,普通数组不行
动态拓展
并不是在原空间之后续借新空间,而是找到更大的内存空间,然后将原数据拷贝到新空间,释放原空间
vector容器的迭代器是支持随机访问的迭代器
vector构造函数
示例
1.打印0到9
第一种
//通过迭代器访问容器
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;//默认构造 无参构造
for(int i=0;i<10;i++)
v1.push_back(i);
print(v1);
}
int main()
{
test();
return 0;
}
运行结果如下:
第二种
//通过区间方式进行访问
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;//默认构造 无参构造
for(int i=0;i<10;i++)
v1.push_back(i);
vector<int>v2(v1.begin(),v1.end());
print(v2);
}
int main()
{
test();
return 0;
}
输出结果如上
2.输出10个100
n个元素(element)构造
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v(10,100);
print(v);
}
int main()
{
test();
return 0;
}
输出结果如下:
3.拷贝构造
直接用vector < int > v(v1),就可以直接拷贝v1容器的元素