小编bd1*_*bd1的帖子

如何从C++ 11匿名函数中访问局部变量?

我正在对向量(权重)进行简单的规范化,试图利用STL算法使代码尽可能干净(我意识到这对于for循环来说非常简单):

float tot = std::accumulate(weights.begin(), weights.end(), 0.0);
std::transform(weights.begin(), weights.end(), [](float x)->float{return(x/tot);});
Run Code Online (Sandbox Code Playgroud)

目前,匿名函数看不到tot,因此无法编译.使局部变量对匿名函数可见的最佳方法是什么?

c++ lambda scope anonymous-function c++11

29
推荐指数
2
解决办法
2万
查看次数

c ++迭代器有更漂亮的语法吗?

在C++中使用迭代器是否有更漂亮/更简洁的方法?从我看过的教程中,我要么在任何地方都设置了typedef(这对于很多一次性for循环来说都很繁琐):

typedef std::vector<std:pair<int, int> >::iterator BlahIterator;
Run Code Online (Sandbox Code Playgroud)

或者有详细的寻找循环,如:

for (std::vector<std:pair<int, int> >::iterator it = ... ) ...
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

c++ iterator design-patterns syntactic-sugar

6
推荐指数
2
解决办法
2852
查看次数