gpt4 book ai didi

c++ - 如何使用C++ Boost库中的for_each?

转载 作者:行者123 更新时间:2023-12-01 15:05:08 25 4
gpt4 key购买 nike

我尝试使用C++ boost库中的for_each。这是我的代码。

#include <iostream>
#include <vector>

#include <boost/fusion/algorithm/iteration/for_each.hpp>
#include <boost/fusion/include/for_each.hpp>

using namespace std;

int main() {

vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);

boost::for_each(
vec,
[](int val){
cout << val << "\n";
}
);

return 0;
}

这就是我编译代码的方式:
g++ -std=c++0x -I /opt/software/boost/1.50_ubuntu12.4lts_gcc4.7.2/include -c try_boost.cpp
g++ -o try_boost -L/opt/software/boost/1.50_ubuntu12.4lts_gcc4.7.2/lib try_boost.o -lboost

结果,我得到:
error: ‘for_each’ is not a member of ‘boost’

有人知道为什么它不起作用吗?

最佳答案

您正在使用Boost.Fusion库中的for_each。不适用于std::vector

您需要的for_each来自Boost.Range库。

#include <boost/range/algorithm/for_each.hpp> //note this difference!

boost::for_each(vec, your-lambda-expression);

它在 boost::range命名空间内定义,并使用 boost声明式带入 using命名空间。所以你也可以这样写:
boost::range::for_each(vec, your-lambda-expression);

关于c++ - 如何使用C++ Boost库中的for_each?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15527999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com