标准模板库 (向量 vector)

编写程序练习了vector 的主要函数。

从中学习到了一些知识点:

1.vector的内部其实还是数组。

2.at用于按照索引访问任意位置的元素,front用于访问头元素,back用于访问尾元素。

3.arr.at(i)和arr[i] 是等价的,在vector的内部重载了[]操作符。

4.push_back用于在尾部追加一个元素,pop_back用于删除尾部元素,resize用于重置vector的容量,clear用于清空vector。

5.迭代器(iterator)是vector的内部类,可以对vector进行遍历。

6.vector重载了*和->,可以进行星号操作。

7.insert,用于在指定位置插入一个元素,erase,用于从中删除一个元素。但在vector中尽量不用这两个,因为会造成大量的数据移动。

#include<iostream>
#include<vector>
using namespace std;

int main()
{
	vector <int> arr(128);
	int capacity=arr.capacity();//返回当前容量
	int size=arr.size();//返回数组的个数
	arr[25]=99;
	arr[0]=15;
	arr[127]=127;
	int at=arr.at(25);//按照索引访问任意位置的值
	cout<<"访问第26个位置的元素:"<<at<<endl;
	int front=arr.front();//返回首元素
	cout<<"访问首元素:"<<front<<endl;
	int back=arr.back();//返回尾元素
	cout<<"访问尾元素:"<<back<<endl;
	cout<<capacity<<endl;//输出容量
	cout<<size<<endl;//输出大小
	arr.clear();//清空
	cout<<"清空后:"<<endl;
	cout<<arr.capacity()<<endl;
	cout<<arr.size()<<endl;
	cout<<"尾部添加元素:"<<endl;
	arr.push_back(5);
	arr.push_back(2);
	for(int i=0;i<arr.size();i++)
		cout<<arr.at(i)<<endl;
	cout<<"删除尾部元素:"<<endl;
	arr.pop_back();
	for(int j=0;j<arr.size();j++)
		cout<<arr.at(j)<<endl;
	cout<<"重置容量,12个数据:"<<endl;
	arr.resize(12);
	for(i=0;i<arr.size();i++)
		cout<<arr.at(i)<<" ";
	cout<<endl;
	//迭代器对vector内部进行遍历
	cout<<"迭代器对vector内部进行遍历:"<<endl;
	for(vector<int>::iterator iter=arr.begin();
		iter!=arr.end();iter++)
	{
		int &p=*iter;
		cout<<p<<" ";
	}
	cout<<endl;
	arr.insert(iter,2,3);//在iter指向的位置插入2个3
	arr.insert(iter,2);//在iter指向的位置插入1个2
	for(i=0;i<arr.size();i++)
		cout<<arr.at(i)<<" ";//从结果显示来看是以最初的vector作为标准在尾部插入
	cout<<endl;
	arr.erase(iter);//删除尾部元素
	for(i=0;i<arr.size();i++)
		cout<<arr.at(i)<<" ";//从结果显示来看是以最初的vector作为标准在尾部删除
	cout<<endl;
	return 0;
}

运行结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值