当前位置:   article > 正文

C++中vector<int>以及for的几种用法_vector for

vector for

vector

C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,可在不知道所需要的数组大小的情况下使用,极大的节省了空间。
使用前需加上头文件

#include<vector>
  • 1

变量声明

vector< int > 变量名
vector< int > a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。
vector< vector< int> >a;(等于声明了一个int类型的二维数组a)

vector自定义

1.vector指定大小

vector<int>a(num);//初始化SIZE大小为num,默认值为0
  • 1

2.指定大小并赋相同初值

vector<int>a(num,5)//初始化SIZE为num,初始值为5
  • 1

3.二维vector指定大小

vector<vector<int>>a(num1);//指定行数为num1
for(int i=0;i<a.size();i++)
{  
	a[i].resize(num2);//指定每行的列数,每行的列数可以不同
	//a[i].resize(num2,5);//指定列数并赋初值为5
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

函数及功能实现

定义一个vector< int >c

        c.clear()          移除容器中所有数据。
        c.empty()          判断容器是否为空。
        c.erase(pos)       删除pos位置的数据
        c.erase(beg,end)   删除[beg,end)区间的数据
        c.front()          传回第一个数据。
        c.insert(pos,elem) 在pos位置插入一个elem拷贝
        c.pop_back()       删除最后一个数据。
        c.push_back(elem)  在尾部加入一个数据elem。
        c.resize(num)      重新设置该容器的大小为num
        c.size()           回容器中实际数据的个数。
        c.begin()          返回指向容器第一个元素的迭代器
        c.end()            返回指向容器最后一个元素的迭代器
        c.assign(beg,end):将[beg; end)区间中的数据赋值给c。
        c.assign(n,elem): 将n个elem的拷贝赋值给c。 
        c.at(idx):        传回索引idx所指的数据,如果idx越界,抛出out_of_range。 
        c.back():         传回最后一个数据,不检查这个数据是否存在。
        c.front():        传回地一个数据。 
        get_allocator:    使用构造函数返回一个拷贝。 
        c.rbegin():   传回一个逆向队列的第一个数据。 
        c.rend():         传回一个逆向队列的最后一个数据的下一个位置。 
        c.~ vector < Elem >():销毁所有数据,释放内存。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

for的用法

vector<int>a(5,1);//初始化size为5,初始值为1
//第一种用法(用下标)
for(int i=0;i<a.size();i++)
	cout<<a[i]<<endl;
//第二种用法(用迭代器)
for(auto item=a.begin();item!=a.end();item++)
	cout<<item<<endl;
//第三种用法(简化数组遍历语法(从vs2008开始支持))
for each(auto item in a)
	cout<<item<<endl;
//第四组用法(STL函数)
std::for_each(a.begin(),a.end(),[](int item){cout<<item<<endl;})
//第五种用法(C++11新增加的(VS2012支持))
for(auto item:a)
	cout<<item<<endl;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/174683
推荐阅读
相关标签
  

闽ICP备14008679号