// stl-vector.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
void useVector()
{
vector<int> aa;
int num = 0;
aa.reserve(11); // 事先分配vector容量,否则vector会自动重新分配容量,费时。可以与实际情况相结合写一个算法来分配容量。
for (int i = 0; i < 12; i++)
{
aa.push_back(i);
}
cout<<"Size = "<<aa.size()<<endl; // vector实际大小,含有多少元素
cout<<"Max size = "<<aa.max_size()<<endl; // vector可以存储最大元素个数,很大,根据实际情况不同,如机器、系统等
cout<<"Capacity = "<<aa.capacity()<<endl; // vector的容量,若果调用reserve分配容量,大小就是你分配的,否则vector会自动分配。根据编译器版本不同,分配规则也不相同
cout<<aa.at(6)<<endl;
cout<<aa.back()<<endl; // 最后一个元素,切记与end不同
cout<<aa.front()<<endl; // 第一个元素,切记与begin不用,begin与end都是被迭代器调用的,而front与back都是由vector对象调用
cout<<"-------------------------"<<endl;
aa.insert(aa.begin(), 2); // 在起始位置插入2
aa.insert(aa.begin(), 2, 1); // 在起始位置插入两个1
aa.insert(aa.begin(), aa.begin()+2, aa.begin()+4); // 在起始位置插入从aa.begin()+2到aa.begin()+4的元素,不包括aa.begin()+4
vector<int>::iterator iter;
for (iter = aa.begin(); iter != aa.end(); iter++)
{
cout<<*iter<<endl; // 切记不要直接输出迭代器本身
}
vector<int>::reverse_iterator rIter;
for (rIter = aa.rbegin(); rIter != aa.rend(); rIter++) // 如果调用rbegin和rend,记得声明一个反向迭代器reverse_iterator
{
cout<<*rIter<<endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
useVector();
return 0;
}
stl vector
最新推荐文章于 2022-11-02 20:45:00 发布