C++ STL(二)vector的用法

##### 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;
}
```

原文地址:https://www.cnblogs.com/littlepage/p/10989609.html

时间: 2024-11-13 23:50:56

C++ STL(二)vector的用法的相关文章

c++ STL库 vector 结构用法简介

STL是什么就不介绍了,这里主要介绍库中vector的常用用法方便以后查阅. Vector成员函数 函数 表述 c.assign(beg,end) c.assign(n,elem) 将[beg; end)区间中的数据赋值给c. 将n个elem的拷贝赋值给c. c.at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range. c.back() 传回最后一个数据,不检查这个数据是否存在. c.begin() 传回迭代器重的可一个数据. c.capacity() 返回容器中

STL中vector的用法

vector应该是STL种最常用的容器了,可以当做数组来看待,只不过vector的元素更丰富,不仅仅是数据元素,还可以是结构体 1.vector的创建和初始化 vector <double> v;//创建一个double类型的vector vector <int> v2(5);//创建一个含有5个元素的int型vector,初始值默认为0 vector <int> v3(4,7);//创建一个含有4个元素的int型vector,初始值都为7 当然也可以通过在尾部添加元素

STL中的Vector相关用法

STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int>是一种数据类型. Vector的存储空间是连续的,list不是连续存储的. 1. 定义和初始化 vector< typeName > v1; //默认v1为空,故下面的赋值是错误的v1[0]=5;//v2是v1的一个副本,若v1.size()>v2.size()则赋值后v2.size()被

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

1.vector的动态增长 当添加元素时,如果vector空间大小不足,则会以原大小的两倍另外配置一块较大的新空间,然后将原空间内容拷贝过来,在新空间的内容末尾添加元素,并释放原空间.vector的空间动态增加大小,并不是在原空间之后的相邻地址增加新空间,因为vector的空间是线性连续分配的,不能保证原空间之后有可供配置的空间.因此,对vector的任何操作,一旦引起空间的重新配置,指向原vector的所有迭代器就会失效. vector的size(),capacity(),reserve(),

C++:vector的用法详解(转载)

原文地址:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include<vector>以包含所需要的类文件vector 还有一定要加上using namespace std; 2.变量声明: 2.1 例:

c++中vector的用法详解

c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include<vector>以包含所需要的类文件vector 还有一定要加上using namespace std; 2.变量声明: 2.1 例:声明一个int向量以替代一维的数组:vector <int> a;(等于声明了一个

【C++】STL,vector容器操作

C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用需要的头文件:#include <vector>.vector 是一个类模板.不是一种数据类型,vector<int>是一种数据类型.Vector的存储空间是连续的,list不是连续存储的. 一. 定义和初始化vector< typeName > v1;       //默认v1为

C++ STL:vector

  不定长数组:vetor 它就像一个二维数组,只是第一维的大小是固定的,但是第二维的大小不固定. 下面是一些尝试代码: 1. <pre name="code" class="cpp"> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #include<vec

google-glog 开源库分析(二):glog用法

glog使用 设置符号变量,定制日志行为 具体符号变量的设置看glog介绍中的符号变量 日志系统初始化 初始化函数:google::InitGoogleLogging(argv[0]) 初始化参数一般是第一个命令行参数--即程序的名称 结束时可以调用关闭日志系统函数 关闭日志库函数:google::ShutdownGoogleLogging() 程序运行时,可通过命令行参数或环境变量来控制程序的日志行为 glog APIs: void google::InitGoogleLogging(cons

(转)STL中set的用法

转载自here 1.关于set map容器是键-值对的集合,好比以人名为键的地址和电话号码.相反地,set容器只是单纯的键的集合.例如,某公司可能定义了一个名为bad_checks的set容器,用于记录曾经给本公司发空头支票的客户.当想知道一个值是否存在时,使用set容器是最适合的.除了两种例外情况,set容器支持大部分的map操作,这两种例外是:set不支持下标操作,而且也没有mapped_type类型,在set容器中,value_type不是pair类型,而是与key_type相同的类型.它