当前位置:   article > 正文

STL之Vector、Set、栈、队列_stl set, vector

stl set, vector

       互联网行业的小白,写博客的目的是为了记录自己的学习过程、对自己学习中所犯的错误做一个总结。由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!

1 STL之vector

1.1 vector简介

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

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

  • 如果要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;
  • vector作为函数的参数或者返回值时,需要注意它的写法` double Distance(vector&a, vector&b) 其中的“&”绝对不能少``

1.2 vector常用操作

1. 引入头文件

#include <vector>
  • 1

2. 创建向量

vector<int> vec;
  • 1

3. 向量尾部插入元素

vec.push_back(item);
  • 1

4. 向量尾部弹出元素

vec.pop_back();
  • 1

5. 访问向量元素

  • 下标访问
for(int i = 0; i < vec.size(); i++) {
   
    cout << vec[i] << endl;
}
  • 1
  • 2
  • 3
  • 4
  • 迭代器访问
vector<int>::iterator it;
for(it = vec.begin(); it != vec.end(); it++) {
   
    cout << *it << endl;
}
  • 1
  • 2
  • 3
  • 4
  • 5

6. 插入元素

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

7. 删除元素

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

8. 向量的大小

vec.size();
  • 1

9. 其他

vec.front();  //返回向量的第一个元素
vec.back();   //返回向量的最后一个元素
vec.empty();  //检测向量是否为空
vec.clear();  //清空向量
  • 1
  • 2
  • 3
  • 4

1.3 vector常用算法

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

#include <algorithm>
  • 1

1. 翻转元素

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

2. 排序

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

3. 查找

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

4. 复制

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

2 STL之set

2.1 Set简介

Set是STL中的一个容器,特点是其中包含

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/758879
推荐阅读
相关标签
  

闽ICP备14008679号