相关疑难解决方法(0)

使用STL将标量值乘以向量元素

嗨我想通过标量值来(乘法,加法等)矢量,例如myv1 * 3,我知道我可以用forloop做一个函数,但有没有办法用STL函数做到这一点?像{Algorithm.h :: transform function}这样的东西?

c++ stl element vector operation

37
推荐指数
3
解决办法
5万
查看次数

为什么std :: for_each是非修改序列操作?

我刚读在C++标准std::for_each是一个非修改序列操作,具有沿find,search等等.这是否意味着应用于每个元素的函数不应该修改它们?这是为什么?什么可能出错?

这是一个示例代码,其中修改了序列.你能看到它有什么问题吗?

void foo(int & i)
{
    i = 12;
}

int main()
{
    std::vector<int> v;
    v.push_back(0);

    std::for_each(v.begin(), v.end(), foo);
    // v now contains 12
}
Run Code Online (Sandbox Code Playgroud)

我怀疑这只是一个解释问题,但我想对此有所了解.

PS:我知道我可以用std::transform而不是for_each,但那不是重点.

c++ foreach standards stl

10
推荐指数
3
解决办法
3319
查看次数

使用lambda的python map函数的等价物

我想知道是否有可能使用自动返回类型推导功能编写Python函数映射的C++等价物.我的想法是这样的:

vector<int> input({1,2,3});
auto output=apply(input,[](int num){return num*num;});

//output should be a vector {1,4,9}
Run Code Online (Sandbox Code Playgroud)

我知道std::transform,但在目前的情况下,编写一个范围循环似乎更容易.

c++ lambda templates c++14

5
推荐指数
2
解决办法
4013
查看次数

标签 统计

c++ ×3

stl ×2

c++14 ×1

element ×1

foreach ×1

lambda ×1

operation ×1

standards ×1

templates ×1

vector ×1