vector和数组很相似,也被称为单端数组,但也有区别,数组是静态空间,而vector可以动态扩展。
动态扩展:不是在原空间之后开辟新空间,而是找一个更大的空间,把数据拷贝到新空间,最后释放原空间。
vector的迭代器支持随机访问。
vector构造函数:
函数原型:
//采用模板实现类实现,默认构造函数 vector<T> v; //将v[begin(), end())区间中的元素拷贝给本身。 vector(v.begin(), v.end()); //构造函数将n个elem拷贝给本身。 vector(n, elem); //拷贝构造函数。 vector(const vector &vec);
例子:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void print_vector(vector<int>& v){
for(vector<int>::iterator it=v.begin();it!=v.end();it++){
cout<<*it<<" ";
}
cout<<endl;
}
void test01(){
vector<int> v1;
for(int i=0;i<20;i++){
v1.push_back(i+1);
}
print_vector(v1);
vector<int> v2(v1.begin(),v1.end());
print_vector(v2);
vector<int> v3(5,20);
print_vector(v3);
vector<int> v4(v3);
print_vector(v4);
}
int main() {
test01();
return 0;
}
vector赋值操作:
函数原型:
//重载等号操作符 vector& operator=(const vector &vec); //将[beg, end)区间中的数据拷贝赋值给本身。 assign(beg, end); //将n个elem拷贝赋值给本身。 assign(n, elem);
例子:
#include <iostream>
#include <string>
#include <vector>
using namespac