求大神以这个C++代码为例对STL标准模板库的容器,迭代器,算法和函数对象进行分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求大神以这个C++代码为例对STL标准模板库的容器,迭代器,算法和函数对象进行分析相关的知识,希望对你有一定的参考价值。
#include <iostream> // std::cout
#include <vector> // std::vector
#include <algorithm> // std::transform
#include <functional> // std::plus
using namespace std;
int main()
vector<int> a 1, 2, 3, 4, 5 , b 6, 7, 8, 9, 10 , c(5);
transform(a.begin(), a.end(), b.begin(), c.begin(), plus<int>());
for(vector<int>::iterator it = c.begin(); it != c.end(); ++it)
cout << *it << endl;
return 0;
功能是将迭代器a、b中的元素按照plus<int>()的规则进行计算,即对应位置的元素相加输出到c中,比如c[0]=a[0]+b[0]=1+6=7,故最终输出为
7
9
11
13
15 参考技术A ,
C++标准库与STL的关系
C++标准库与STL的关系
STL即标准模板库(Standard Template Library),它包括五大类组件:算法、容器、迭代器、函数对象、适配器。
STL是C++标准库的一部分,但不是全部。C++标准库是std名字空间中的所有内容,就是那些不带.h的头文件,如<cstdio>、<iostream>。如std::string,及IO流都不属于STL,但它们是STL兼容的,可以应用迭代器,算法等。虽然std::string和IO流也是模板类,但并不属于STL。
STL的实现,如STLPort中包括了IO流,string类等,其实不能确切的称为STL实现,而是比STL更大的库实现。但是某些STL类没有在标准库中实现,如hash map,STLPort中实现了。C++标准库包含一个STL的实现,但该实现是标准STL的子集。
(转载请注明来源于金庆的专栏)
以上是关于求大神以这个C++代码为例对STL标准模板库的容器,迭代器,算法和函数对象进行分析的主要内容,如果未能解决你的问题,请参考以下文章