C++ STLvector的用法

Posted littlepage

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ STLvector的用法相关的知识,希望对你有一定的参考价值。

##### vector的定义

```
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct stu
int age;
;
class xx
string s;
;
void vectorDefine()

vector<int> vec;
vector<struct stu> vec2;
vector<xx> vec3;
vector<string> vec4;
vector<int*> vec5;

```
##### vector的构造

```
void vectorConstructor()
vector<int> vec;
vector<int> vec1(5);//5个元素全是0
vector<int> vec2(5,9);//5个9
vector<int> vec3(vec2);//拷贝构造,类型一定要一样
vector<int> vec4(vec2.begin(),vec2.end());//迭代器构造
for(int i=0;i<5;i++)//循环遍历
cout<<vec4[i];


```
##### vector的容量
- vec.capacity();
**用法**
vector初始容量为0
给初始容量为x
进行vec.push_back(T t)操作后,容量在vs变为1.5倍
在devC++变为2倍
- vec.reserve(int i); 改变容量
- vec.size(); 求到vec的大小
- vec.resize(); 重新设置元素个数,容量不变

##### vector的操作
**增加**
- vec.push_back(T t); 在尾部增加一个元素
- vec[int index]; 输出index位置的元素
- vec.at(int index); 输出index位置的元素
- vec.back(); 返回尾巴元素
- vec.insert(iterator i,T t);在iterator处插入元素t
- vec.insert(iterator i,int num.T t)在iterator处插入num个元素T

**删除**
- vec.pop_back(); 删除尾巴元素
- vec.erase(iterator i); 删除iterator位置的元素
- vec.clear(); 清除所有元素

##### 算法
**sort**
sort(iterator begin,iterator end) 从小到大排序
sort(iterator begin,iterator end,greater\<int>()) 从大到小

**for_each**
for_each(iterator begin,iterator end,void operatorFun())
进行每个元素操作的功能

**random_shuffle**
srand((unsigned int)time(NULL));
random_shuffle(iterator begin,iterator end);
随机打乱顺序

```
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;
int main(int argc, char** argv)
vector<int> vec;
vec.push_back(5);
vec.push_back(10);
vec.push_back(15);
srand((unsigned int)time(NULL));
random_shuffle(vec.begin(),vec.end());
for(int i=0;i<vec.size();i++)
cout<<vec[i]<<endl;

return 0;

```

 

以上是关于C++ STLvector的用法的主要内容,如果未能解决你的问题,请参考以下文章

C++ 提高教程 STLvector容器插入和删除

c++基础篇STLvector类的介绍及其模拟实现

c++基础篇STLvector类的介绍及其模拟实现

c++基础篇STLvector类的介绍及其模拟实现

STLvector详解

encode 在C++中的用法