简化以下程序,将两个 for 循环都替换为标准的 C++ 算法
2017-05-25 19:49
615 查看
#include <string> #include <vector> #include <iostream> int main() { std::vector<std::string> strings; strings.push_back("Boost"); strings.push_back("C++"); strings.push_back("Libraries"); std::vector<int> sizes; for (std::vector<std::string>::iterator it = strings.begin(); it != strings.end(); ++it) sizes.push_back(it->size()); for (std::vector<int>::iterator it = sizes.begin(); it != sizes.end(); ++it) std::cout << *it << std::endl; }
#include "boost/bind.hpp" #include "boost/function.hpp" #include "boost/lambda/lambda.hpp" #include <algorithm> #include <functional> #include <vector> #include <iostream> #include <string> int main() { typedef std::vector<std::string> type; std::vector<std::string> strings; strings.push_back("Boost"); strings.push_back("C++"); strings.push_back("Libraries"); std::vector<int> sizes(strings.size()); std::transform (strings.begin(),strings.end(), sizes.begin(), boost::bind(&std::string::size,_1)); std::for_each(sizes.begin(), sizes.end(), std::cout << boost::lambda::_1 << "\n"); }
相关文章推荐
- 简化以下程序,将函数对象 divide_by 转换为一个函数,并将 for 循环替换为用一个标准的 C++ 算法来输出数据
- 请简述以下两个for 循环的优缺点
- 双向循环链表插入算法的C++程序实现
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- 双向循环链表删除算法的C++程序实现
- C/C++面试之算法系列--约瑟夫环:每隔两个循环删除数组元素,求最后删除者的下标问题
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- C++的for循环作用域
- 为什么C++标准头文件都有类似以下的结构?
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 一些C/C++的算法小程序
- 7章7节for死循环简单menu程序
- 将gcc下的程序移植到MSVC下 之一 - gcc对标准C/C++语言的扩展
- 21天学通c++之7.11 for循环之空语句
- 【ZZ】c/c++程序一个语句中不要有两个表达式有副作用
- 帮忙写下用for循环语句编写一程序 新手求助
- C/C++面试之算法系列--整数数组的循环右移
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 21天学通c++之7.9 for 循环