vector 容器
开发工具与关键技术:Visual Studio、C++
作者:张国军
撰写时间:2019年06月25日
vector对象的带参数构造
vector(beg,end) ;构造函数将[beg, end)区间中的元素拷贝给本身。
注意该 区间是左闭右开的区间。
vector(n,elem) ;构造函数将 n 个 elem 拷贝给本身。
vector(const vector &vec);拷贝构造函数
用数组来进行构造:
#include <iostream>
#include <vector>
using namespace std;
void main()
{
int a[] = { 0,1,2,3,4 };
vector<int> b(a, a + 5);
for (int i = 0; i < 5; i++)
{
cout<<b[i]<<" ";
}
cout << endl;
}
我们可以将数组的值直接拷贝到我们的容器里边,需要的是我们数组的开始和我们数组的结尾。
2.用另一个容器来构造当前容器:
#include <iostream>
#include <vector>
using namespace std;
void main()
{
vector<int> b;
for (int i = 0; i < 10; i++)
{
b.push_back(i);
}
cout << "------------b容器---------------------"<<endl;
for (int i = 0; i < 10; i++)
{
cout << b[i] << " ";
}
cout << endl;
vector<int> c(b.begin(), b.end());
cout << "------------c容器---------------------" << endl;
for (int i = 0; i < 10; i++)
{
cout<<c[i]<<" ";
}
cout << endl;
}
使用容器拷贝,我们可以看到我们c容器并没有赋值,但是我们使用了拷贝构造函数进行了拷贝,那么我们的c容器就有了b容器里边的值,而我们拷贝函数需要的是b容器的开始和结尾
vector c(b.begin(), b.end());
vector 的大小size()
void main()
{
vector<int> b;
for (int i = 0; i < 10; i++)
{
b.push_back(i);
}
cout << "------------b容器---------------------"<<endl;
for (int i = 0; i < 10; i++)
{
cout << b[i] << " ";
}
cout << endl;
cout << "b容器中元素的个数:"<< b.size()<<endl;
}
vector.resize(num);
重新指定容器的长度为 num,若容器变长,则 以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
void main()
{
vector<int> b;
for (int i = 0; i < 10; i++)
{
b.push_back(i);
}
cout << "------------b容器---------------------"<<endl;
for (int i = 0; i < b.size(); i++)
{
cout << b[i] << " ";
}
cout << endl;
b.resize(5);
cout << "b.resize(5);"<< endl;
for (int i = 0; i <b.size(); i++)
{
cout << b[i] << " ";
}
cout << endl;
}
从我们的输出结果我们可以看到我们使用b.resize(5)之后我们的容器元素就剩下5个了末尾超出容器长度的元素被删除。