c/c++语言开发共享C++ STL框架

STL(Standard Template Library,标准模板库) STL的三大组件:容器(container)、算法(algorithm)、迭代器(iterator)。 STL:六大组件 容器 算法 迭代器 仿函数 适配器 空间配置器 容器:存放数据 算法:操作数据 迭代器:容器和算法的桥梁 …


stl(standard template library,标准模板库)

stl的三大组件:容器(container)、算法(algorithm)、迭代器(iterator)。

C++ STL框架

 

 

 

stl:六大组件

容器 算法 迭代器 仿函数 适配器 空间配置器
 
容器:存放数据
算法:操作数据
迭代器:容器和算法的桥梁
仿函数:为算法 提供更多的策略
适配器:为算法 提供更多的参数接口
空间配置器:管理容器和算法的空间

 

算法分类:

质变算法:是指运算过程中会更改区间内的元素内容。例如拷贝、替换、删除等等。
非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等。
 
迭代器的分类
C++ STL框架

 

 

然后我通过案例来讲解:
C++ STL框架
案例:容器vector
 1 #include <iostream>  2 #include<vector>  3 #include<algorithm>  4 using namespace std;  5 void myprintint(int val);  6 void test01()  7 {  8     //单端动态数组vector 类模板  9     vector<int> v;//v就是一个具体的vector容器 10  11     //pash_back 尾部插入 12     v.push_back(100); 13     v.push_back(200); 14     v.push_back(300); 15     v.push_back(400); 16  17     //访问数据 18     //定义一个迭代器存储 v的起始迭代器 19     vector<int>::iterator  biginit = v.begin(); 20     //定义一个迭代器存储 v的结束迭代器 21     vector<int>::iterator endit = v.end(); 22  23     //for循环遍历1 24     for(;biginit != endit; biginit++) 25     { 26         //对迭代器取* 代表的是 容器的元素 27         //*biginit 28         cout<<*biginit<<" "; 29     } 30     cout<<endl; 31  32     //for循环遍历2(推荐) 33     for(vector<int>::iterator it=v.begin(); it !=v.end(); it++) 34     { 35         cout<<*it<<" "; 36     } 37     cout<<endl; 38  39     //stl提供的算法来遍历容器(包含算法头文件 algorithm) 40     //for_each 从容器的起始--->结束  逐个元素取出 41     //myprintint 容器数据的打印方式 42     for_each(v.begin(), v.end(), myprintint); 43     cout<<endl; 44 } 45  46 void myprintint(int val) 47 { 48     cout<<val<<" "; 49 } 50  51 int main(int argc, char *argv[]) 52 { 53     test01(); 54     return 0; 55 }

案例3:容器嵌套容器(了解)

 1 void test03()  2 {  3     vector<int> v1;  4     vector<int> v2;  5     vector<int> v3;  6   7     v1.push_back(10);  8     v1.push_back(20);  9     v1.push_back(30); 10     v1.push_back(40); 11  12     v2.push_back(100); 13     v2.push_back(200); 14     v2.push_back(300); 15     v2.push_back(400); 16  17     v3.push_back(1000); 18     v3.push_back(2000); 19     v3.push_back(3000); 20     v3.push_back(4000); 21  22     //需求在定义一个vector容器 存放 v1 v2 v3 23     vector<vector<int>> v; 24     v.push_back(v1); 25     v.push_back(v2); 26     v.push_back(v3); 27  28     //for循环遍历 29     for(vector<vector<int>>::iterator it = v.begin(); it!=v.end(); it++) 30     { 31         //*it == vector<int> v1 v2 v3 32         for(vector<int>::iterator mit=(*it).begin(); mit!=(*it).end(); mit++ ) 33         { 34             //*mit ==int 35             cout<<*mit<<" "; 36         } 37         cout<<endl; 38     } 39 }

C++ STL框架

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/600011.html

(0)
上一篇 2021年5月9日
下一篇 2021年5月9日

精彩推荐