stl标准模板库

1、容器

保存数据的(数据结构)
常用的数据结构:数组(array),链表(list),tree(树),栈(stack),队列(queue),集 合(set),映射表
(map),根据数据在容器中的排列特性,这些数据分为序列式容器和关联式容器两种。
序列式容器强调值的排序,序列式容器中的每个元素均有固定的位置,除非用删除或插入的
操作改变这个位置。Vector容器、Deque容器、List容器等。
关联式容器是非线性的树结构,更准确的说是二叉树结构。各元素之间没有严格的物理上
的顺序关系,也就是说元素在容器中并没有保存元素置入容器时的逻辑顺序。关联式容器另
一个显著特点是:在值中选择一个值作为关键字key,这个关键字对值起到索引的作用,方
便查找。Set/multiset容器 Map/mul┶map容器

2、算法

算法,问题之解法也。
以有限的步骤,解决逻辑或数学上的问题,这一门学科我们叫做算法(Algorithms)等
广义而言,我们所编写的每个程序都是一个算法,其中的每个函数也都是一个算法,毕竟它
们都是用来解决或大或小的逻辑问题或数学问题。STL收录的算法经过了数学上的效能分析
与证明,是极具复用价值的,包括常用的排序,查找等等。特定的算法往往搭配特定的数据
结构,算法与数据结构相辅相成。
算法分为:质变算法和非质变算法。
质变算法:是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等等
非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极
值等
算法需要包含的头文件: algorithm

3、迭代器

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string.h>
#include <string>
#include <vector>
using namespace std;
void test01()
{
vector<int> v;//相当数组,
 v.push_back(2);
 v.push_back(4);
 v.push_back(5);
 v.push_back(3);
 //若需要访问容器内的元素 需要拿到容器首元素的迭代器(指针)
 vector<int>::iterator it_start = v.begin();//v.begin();获得指向首元素的迭代器接口
  vector<int>::iterator it_end = v.end();// v.end();获得指向末尾的迭代器接口
 for (; it_start != it_end; it_start++)
 {
 cout << *it_start << " ";

 }
 cout << endl;

 }

 int main()
 {
 test01();
 return 0;
 }

3-1、使用for_each遍历

 #define _CRT_SECURE_NO_WARNINGS
 #include <iostream>
 #include <string.h>
 #include <string>
 #include <vector>
 #include <algorithm>//算法要带上

using namespace std;

void print(int a)
{
cout<<a<<endl;

}

void test01()
{
    vector <int> v;
    v.push_back(2);
    v.push_back(3);
    v.push_back(5);
    v.push_back(6);

    vector<int>::iterator it_start = v.begin();
    vector<int>::iterator it_end = v.end();
    

     for_each(it_start, it_end, print);
}

int main()
{
    test01;
    return 0;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值