stl vector

5 篇文章 0 订阅
1 篇文章 0 订阅
// 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值