码迷,mamicode.com
首页 > 其他好文 > 详细

STL之vector的应用

时间:2018-07-26 16:37:17      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:clu   定义排序   insert   常用   排列   数组   back   检测   内存   

一、关于vector

    vector是C++提供的一个容器,它是一个能够存放任意类型的动态数组,可以随时增加和压缩数据。

    使用vector时需要注意以下几点:

    1. 如果要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;

    2. vector作为函数的参数或者返回值时,需要注意它的写法

        double Distance(vector<int>&a, vector<int>&b) 其中的“&”绝对不能少

 

引入头文件

#include <vector>;

 

二、vector常用操作

1. 创建向量

vector<int> vec;

 

2. 向量尾部插入元素

vec.push_back(item);

 

3. 向量尾部弹出元素

vec.pop_back();

 

4. 访问向量元素

    (1)下标访问

for(int i = 0; i < vec.size(); i++) {
    cout << vec[i] << endl;
}

    (2)迭代器访问

vector<int>::iterator it;
for(it = vec.begin(); it != vec.end(); it++) {
    cout << *it << endl;
}

 

5. 插入元素

vec.insert(vec.begin() + i, item);        //在向量的第i+1的位置插入元素item

 

6. 删除元素

vec.erase(vec.begin() + i);        //删除向量的第i+1个元素

 

7. 向量的大小

vec.size();

 

8. 其他

vec.front();        //返回向量的第一个元素
vec.back();        //返回向量的最后一个元素

vec.empty();        //检测向量是否为空
vec.clear();        //清空向量

 

三、vector常用算法

以下算法使用时都需要包含头文件

#include <algorithm>

 

1. 翻转元素

reverse(vec.begin(), vec.end());        //将向量中的元素翻转,即逆序排列

 

2. 排序

sort(vec.begin(), vec.end());        //将元素以升序排列(由小到大)

 

//定义排序比较函数
bool compare(const int &a, const int &b) {
    return a > b;
}
sort(vec.begin(), vec.end(), compare);        //将元素以降序排列(由大到小)

 

3. 查找

find(vec.begin(), vec.end(), 10);        //查找向量中的值为10的元素

 

4. 复制

copy(vec.begin(), vec.end(), vec_1.begin() + 1);        //把vec向量中所有元素全部复制到vec_1向量中,从vec_1.begin() + 1 的位置开始复制,覆盖掉原有的元素

STL之vector的应用

标签:clu   定义排序   insert   常用   排列   数组   back   检测   内存   

原文地址:https://www.cnblogs.com/Gzu_zb/p/9372490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!