您的位置:首页 > 编程语言 > C语言/C++

简化以下程序,将两个 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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  boost c++
相关文章推荐