今天晚上我终于认真学习了一遍vector,即动态数组
写下这篇东西,方便日后翻阅。
.
.
百度的vector定义:动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的下标;当要用它时,可随时用ReDim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。
#include<iostream>
#include<vector>//头文件
using namespace std;
vector<int>a;//d定义
vector<int>b(10);//声明一个初始大小为10的vector
vector<int>c(10,5);//声明一个初始大小为10而且初始值都为5的vector
int main()
{
for(int i=0;i<=10;i++)
{
a.push_back(i);//向数组尾部加一个数,这里向a数组中加了11个数字,从a[0]~a[10]分别是0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
}
cout<<a[1]<<endl;//输出a[1],输出为 1
cout<<a.at(1)<<endl;//也是输出a[1],输出为 1
cout<<a.size()<<endl; //返回次vector中元素的个数
a.pop_back();//删除数组尾部的一个元素,这里为删除 10
a.resize(1000);//修改vector大小为1000
a.begin();//这里返回的是指向vector头部的迭代器(就是指针!!)
a.end();// 这里返回的是指向vector尾部元素的后一个元素的迭代器,注意是指向尾部元素后一个元素的指针!!!
a.empty();//若vector为空,返回true,否则返回false
a.clear();
a.insert(a.begin()+2,1000);//在在第2位前插入元素1000 然后就为a[2]==1000,这时候原来a[2]和以后的元素全部往后推一位,这时候a[3]=2
a.erase(a.begin()+1);//删除第1位元素 然后a[1]==2,原来a[2]及其之后元素全部往前推一位
a.erase(a.begin()+0,a.begin()+5);//删除第0位到第(5-1)=4位 的元素,就是原来a[0]~a[4]全部删除
a.insert(a.begin(),3,1000); //向第0位前 插入三个1000
return 0;
}
.
.
.