求大神以这个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;

核心是transform(a.begin(), a.end(), b.begin(), c.begin(), plus<int>());
功能是将迭代器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标准模板库的容器,迭代器,算法和函数对象进行分析的主要内容,如果未能解决你的问题,请参考以下文章

STL 基本概念

初识STL

link-1-STL 标准模板库

C++ STL - 容器实现

求STL(C++)模板库的set.h头文件

C++ STL快速入门