欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STL中vector的常见用法

程序员文章站 2022-03-22 21:37:04
...

1、vector的定义

vector <typename> name ;

例如:

vector <int> vi ;

vector <node> vi ;  //node是结构体类型

vector < vector <int> > vi ;  //二维vector数组,>>之间要加空格以防被当作右移操作


2、迭代器iterator

vector <typename> :: iterator it ; //相当于类型为typename的指针

例如:

vector <int> :: iterator it = vi.begin() ; 

*(it + i) // 等价于vi[i],只有vector和string可以用*(it + i)来访问


3、常用函数

  1. 末尾插入  //push_back(a)
  2. 末尾删除  //pop_back()
  3. 元素个数  //size()
  4. 清空元素  //clear()
  5. 插入元素  //insert(iterator,a)
  6. 删除单个或一个区间的元素  //erase(iterator) or erase(iterator1,iterator2)

#include<cstdio>
#include<vector>

using namespace std;

int main(){
	vector<int> vi;                           //定义vi
	for(int i = 0;i < 10;i++){
		vi.push_back(i);                  //函数1、末尾插入
	}
	vi.insert(vi.begin() + 2,-1);             //函数5、插入;迭代器访问
	printf("%d\n",vi.size());                 //函数3、元素个数

	vi.erase(vi.begin() + 3,vi.begin() + 8);  //函数6、删除一个区间的元素
	vi.pop_back();                            //函数2、末尾删除

	for(int i = 0;i < vi.size();i++){         //函数3、元素个数
		printf("%d",*(vi.begin() + i));   //等价于vi[i]
	}

	vi.clear();                               //函数4、清空
	return 0;
}