boost中lambda表达式的疑问

yangyunzhao 2018-06-25 02:40:37
fore_each中,想把一个vector的数据拷贝到另外一个vector中,但是一直无法使用
由于某种原因,不方便用C++11,所以用boost来代替

int main()
{
std::string str = "123;1234;435;64646";
std::vector<std::string> strvec;
std::vector<int> intvec;

boost::split(strvec, str, boost::is_any_of(";"));
std::for_each(strvec.begin(), strvec.end(), intvec.push_back(atol(boost::bind(&std::vector<std::string>::value_type, boost::lambda::_1)(strvec))));

return 0;
}

无法通过编译,不太明白原因,请指教,谢谢!
...全文
175 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yshuise 2018-06-27
  • 打赏
  • 举报
回复
为什么不能用?
先把空间分配好,然后再用for_each();
walkereklaw 2018-06-26
  • 打赏
  • 举报
回复
push_back 参数二义性,bind无法确定参数类型。如果返回值不一样倒可以用,强转。
Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起,其有些内容有望成为下一代C++标准库内容。在C++社区影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。   可从http://sourceforge.net/project/showfiles.php?group_id=7586下载安装boost库。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。   Boost比较有名气的有这么几个库:   Regex   正则表达式库   Spirit   LL parser framework,用C++代码直接表达EBNF   Graph   图组件和算法   Lambda   在调用的地方定义短小匿名的函数对象,很实用的functional功能   concept check   检查泛型编程的concept   Mpl   用模板实现的元编程框架   Thread   可移植的C++多线程库   Python   把C++类和函数映射到Python之   Pool   内存池管理   smart_ptr   5个智能指针,学习智能指针必读,一份不错的参考是来自CUJ的文章:   Smart Pointers in Boost,哦,这篇文章可以查到,CUJ是提供在线浏览的。文版见笔者在《Dr.Dobb's Journal软件研发杂志》第7辑上的译文。   Boost总体来说是实用价值很高,质量很高的库。并且由于其对跨平台的强调,对标准C++的强调,是编写平台无关,现代C++的开发者必备的工具。但是Boost也有很多是实验性质的东西,在实际的开发实用需要谨慎。并且很多Boost的库功能堪称对语言功能的扩展,其构造用尽精巧的手法,不要贸然的花费时间研读。Boost另外一面,比如Graph这样的库则是具有工业强度,结构良好,非常值得研读的精品代码,并且也可以放心的在产品代码多多利用。   boost英文解释:推进   boost 在一些播放软件和音效指增强,比如Bass Boost,低音增强。 提示: 这是boostpro定制安装更新版, 可以选择自己需要的库. 包括1.33到1.40所有版本. 如要最新可去http://www.boostpro.com/

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧