##### 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++ STL(二)vector的用法的更多相关文章

  1. C++学习二 vector的用法(使用sort对于vector排序)

    一.vector的介绍 vector是C++里面的一个容器,也是我们数学上面理解的向量,有一些比较常见的操作. 二.vector的定义 #include<vector> using nam ...

  2. STL:vector容器用法详解

    vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着ve ...

  3. STL中vector的用法

    vector是标准模板库的一种容器,是可存放各种类型的动态数组. #include<iostream> #include<vector> using namespace std ...

  4. 【STL】- vector的用法

    初始化: 1. 默认构造: vector<int> vint; 2. 用包含10个元素的数组初始化: vector<int> vint(ia, ia+10); 算法: 1. v ...

  5. C++-STL:vector用法总结

    目录 简介 用法 1. 头文件 2. vector的声明及初始化 3. vector基本操作 简介 vector,是同一类型的对象的集合,这一集合可看作可变大小的数组,是顺序容器的一种.相比于数组,应 ...

  6. STL中的Vector相关用法

    STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...

  7. STL vector常见用法详解

    <算法笔记>中摘取 vector常见用法详解 1. vector的定义 vector<typename> name; //typename可以是任何基本类型,例如int, do ...

  8. 【校招面试 之 C/C++】第20题 C++ STL(二)之Vector

    1.vector的动态增长 当添加元素时,如果vector空间大小不足,则会以原大小的两倍另外配置一块较大的新空间,然后将原空间内容拷贝过来,在新空间的内容末尾添加元素,并释放原空间.vector的空 ...

  9. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  10. STL中vector、list、deque和map的区别

    1 vector     向量 相当于一个数组    在内存中分配一块连续的内存空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capac ...

随机推荐

  1. normalization(统计)

    In statistics and applications of statistics, normalization can have a range of meanings.[1] In the ...

  2. python基础学习笔记-切片难点

    numbers = [1,2,3,4,5,6,7,8,9,10] print(numbers[5::-2]) print(numbers[10:5:-2]) print(numbers[:5:-2]) ...

  3. Unity 动画属性

    在动画的使用上使用不当的设置往往会造成不可预料的结果. 首先,如果动画自身可以驱动物体移动,那么在Animator组件上必须选择apply root motion,物体的动画位移才能生效,否则动画只能 ...

  4. P1596 【[USACO10OCT]湖计数Lake Counting】

    可爱的题面君~~ 个人感觉这题还是很简单的,就是一个完全不加工的找联通块个数 个人解题思路是先读入,然后循环一遍,遇到水就dfs,并把这个w所在的联通块“删除”,并在答案上加一 最后输出答案 具体注释 ...

  5. USACO4.3 Buy Low, Buy Lower【简单dp·高精度】

    如果没有方案数的话,这道题水的不得了,裸的最长下降子序列. 但是它有方案数,所以... 一个是方案数的求法: 设$f[i]$是以$a[i]$结尾的最长下降子序列的长度,可以$n^2$$dp$出答案 如 ...

  6. Layer 弹出层抖动问题

    layer.open({        type: 2,        anim: 5,//加上anim,渐显        title: '品牌列表',        shadeClose: fal ...

  7. python 并发编程 多线程 GIL与多线程

    GIL与多线程 有了GIL的存在,同一时刻同一进程中只有一个线程被执行 多进程可以利用多核,但是开销大,而python的多线程开销小,但却无法利用多核优势 1.cpu到底是用来做计算的,还是用来做I/ ...

  8. 二、Kubernetes_V1.10集群部署-master-etcd

    1.ETCD集群服务器: (1)172.18.6.39 (2)172.18.6.40 (3)172.18.6.41 1.安装etcd # yum -y install etcd 2.发布证书 cp - ...

  9. [转帖]2016年的文章: 解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介

    解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介 更新时间:2016年06月23日 11:38:00   作者:汤姆大叔    我要评论 https://www.jb ...

  10. springMVC原理简单介绍

    说明: 用户发送请求到DispatcherServlet,即前端控制器 DipatcherServlet调用处理器映射器HandlerMapping解析 处理器映射器HandlerMapping根据请 ...