std::vector<template class> 就是动态数组。
这里面有很多的方法。
比如:size(),capacity(),resize();reverse();pop_back();swap();
以及遍历操作。
/*实验一
//定义std::vector<class T>变量
std::vector<int> myVec(6);
cout << myVec.capacity() << endl;//数组的容量
cout << myVec.size()<< endl;//数组中元素个数。
cout << "**************************" << endl;
//赋值操作
for (std::vector<int>::size_type i = 0; i != myVec.capacity();i++)
{
myVec[i] = i * 2;
}
//打印操作(一)
for (auto elem : myVec)
{
cout << elem << endl;
}
cout << "**************************" << endl;
//打印操作(二)
for (std::vector<int>::iterator iter = myVec.begin(); iter != myVec.end();++iter)
{
cout << *iter << endl;
}
//打印某一个位置的元素
cout << "**************************" << endl;
cout << myVec.at(0) << endl;
cout << myVec.at(1) << endl;
cout << myVec.at(2) << endl;
cout << myVec.at(3) << endl;
cout << myVec.at(4) << endl;
cout << myVec.at(5) << endl;
//获取第一个,最后一个的值
cout << "**************************" << endl;
cout << myVec.front() << endl;
cout << myVec.back() << endl;
*/
//实验二
std::vector<int> vec1 = {1,2,3,4,5,6};
cout << vec1.capacity() << endl;//数组的容量
cout << vec1.size() << endl;//数组中元素个数。
std::vector<int> vec2;
vec2.assign(3, 6); //设置3个6.
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
cout << vec2[0] << endl;
cout << vec2.at(1) << endl;
cout << vec2.at(2) << endl;
cout << "******************************" << endl;
vec2.reserve(4); //重新设置容量的同时,不进行赋值操作。
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
for each (int var in vec2)
{
cout << var << endl;
}
cout << "******************************" << endl;
cout << vec2.at(3) << endl;
vec2.resize(5); //它是开辟空间的同时赋值为空
cout << vec2.capacity() << endl;//数组的容量
cout << vec2.size() << endl;//数组中元素个数。
cout << "******************************" << endl;
for (auto i:vec2)
{
cout << i << endl;
}
vec2.assign(vec1.begin(), vec1.end()); //这是第二种赋值方式。
cout << "******************************" << endl;
for (auto i : vec2)
{
cout << i << endl;
}