标准模板库(STL)

一.STL
广义:包括算法,容器,迭代器
STL六大组件:容器,算法,迭代器,仿函数,适配器,空间配置器。

容器:类模板 ===> 各种各样的数据结构:数组,链表,栈,队列,树,集合等等。
算法:函数模板:统计,排序,查找,遍历等等,100多种。
迭代器:对容器内的元素提供统一的遍历方式。

单端数组:头文件

#include <vector>
vector<int> v;
v.push_back(xx);

迭代器:大部分容器都有自己的迭代器。

vector<int>::iterator it(迭代的对象);

拥有迭代器的容器都有两种基本的方法:

(1)begin()函数:返回指向第一个元素的迭代器
(2)end() 函数:返回指向最后一个元素的下一个元素的迭代器

迭代器可以近似看成一个指针来使用

vector<int>::iterator it = v.begin();
while(it != v.end())//打印
{
    cout << *it <<' ';
    it++;
}
cout<<endl;

算法:数据处理==>靠迭代器

算法的头文件:

#include <algorithm>

二.容器
1、vector 常用函数

 cout << " " << v.back() << endl;
    cout << " " << v.front() << endl;
    cout << " " << v.size() << endl;
while (!v.empty())//判断是否为空
{
cout << v.back() << " ";
v.pop_back();
}
cout << endl;

2、通过数组下标访问vector元素

for(int i = 0; i < v1.size(); i++)
{
// v1[i] = i;//如果数组下标越界,就发生段错误
v1.at(i) = i;//如果at越界,会抛出一个异常
}

注意下面这种打印方式:返回的是
for (auto aa:v4)
{
cout << aa << endl;
}

数组:随机访问迭代器

3、迭代器

1.正向迭代器
从左往右遍历

vector<int>::iterator it = v.begin();

2.反向迭代器
从右往左遍历
rbegin():返回指向最后一个元素的迭代器
rend() :返回指向第一个元素的前一个元素的迭代器

vector<int>::reverse_iterator it1 = v.rbegin();

3.const迭代器

vector<int>::const_iterator cit;
vector<int>::const_reverse_iterator crit;

4、插入与删除:
第一个参数:插入的位置===>迭代器

v.insert(v.begin(), 10);

删除元素:通用的方式:通过迭代器删除

v.erase(v.begin());

清空容器
1.v.clear();
2.构建一个空的容器,与当前容器进行交换

vector<int> v2; //空的
v1.swap(v2); //v1 和v2进行交换

逆序

reverse(v2.begin(), v2.end());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值