18.2.1 vector构造函数
vector<T> v; | 默认构造函数 |
vector(v.begin(), v.end()); | 用v的一段区间初始化新对象 |
vector(n, elem); | 用n个elem初始化新对象 |
vector(const vector &v); | 拷贝构造函数 |
1、默认构造函数
这里写了一个打印vector元素的函数,当然把这个函数写成模板形式更好。
#include <iostream>
#include<vector>
using namespace std;
template<class T>
void printVector(vector<T> &v)
{
for(vector<T>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << '\t';
}
cout << endl;
}
然后再写默认构造函数的案例。
默认构造函数只能创建一个对象,不能初始化,所以再用一个循环存入一些数据。
void test1()
{
vector<int>v1;
for (int i = 0; i < 10; i++)
{
v1.push_back(i);
}
printVector<int>(v1);
}
int main()
{
test1();
}
2、用v的一段区间初始化新对象
还是一样的v1,再用v1的区间初始化v2。
void test2()
{
vector<int>v1;
for (int i = 0; i < 10; i++)
{
v1.push_back(i);
}
vector<int>v2(v1.begin(), v1.end());
printVector<int>(v2);
}
int main()
{
test2();
}
3、用n个elem初始化新对象
void test3()
{
vector<int>v3(10, 100);
printVector<int>(v3);
}
int main()
{
test3();
}
4、拷贝构造函数
void test4()
{
vector<int>v3(10, 100);
vector<int>v4(v3);
printVector(v4);
}
int main()
{
test4();
}