使用STL算法进行矢量操作
Vector manipulation using STL algorithms
我有一个向量,我想用标量值乘以它的每个元素。我为这个写了以下代码
int func(const int x)
{
return 10 * x; // say the scalar value is 10
}
void foo()
{
// .. compute vector vert
std::transform(vert.begin(), vert.end(), vert.begin(), ::func);
}
代码完成了任务,但我想知道是否有一个更简洁的实现,一个不需要我单独定义函数
我还没有看到transform()
实际上看起来是一个好答案的情况。。。我强烈建议:
for (int& x : vert) {
x *= 10; // or x = func(x)
}
它更清晰、更简洁。
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么这个运算符<重载函数对 STL 算法不可见?
- STL 用户定义的二进制操作
- 如何在不进行内存操作的情况下在 C++ 和 STL 中定义 2D 数组
- C++结构上的 Stl 向量操作
- 使用指向 STL 映射的指针的操作
- STL 向量上的重复操作是否允许"Inherent Parallelism"/改进的内存访问?
- C++ STL容器集和多集:不同返回类型的插入操作
- 使用STL算法进行矢量操作
- 对于stl容器来说,end()可能是一个代价高昂的操作
- C++STL堆栈弹出操作导致分段错误
- 每个C++STL收集操作的算法效率
- STL结构:"insert if not present"操作?
- 使用c风格数组作为STL字符串操作的后端
- 是否存在STL或BOOST映射,如查找和弹出操作的容器
- 对Boost::uBLAS向量执行STL操作
- boost是否有比STL更简单的用于集合操作的数据类型?
- 是否有任何支持以下操作的提升/stl 容器
- 用于操作每个令牌的字符串分析(无 STL)