如何检查c++stl向量中是否存在值,并将函数应用于向量的每个元素
how to check a value exists in a c++ stl vector and apply a function to every element of the vector?
我有两个问题与C++中标准库的向量类有关。
-
如何检查向量中是否已经存在一个值(比如说一个整数)?
我想用文字表达如下:;如果整数已经存在于向量中,则下一个,否则将其添加到向量的末尾"
-
如何将一个包含参数的函数应用于向量中的每个元素?(似乎我用for_each做不到)
换句话说:;对于矢量中的每个z元素应用MyAddFn(i;
或者我可能对stl向量序列容器不太满意,我应该定义自己的迭代器?
1)
std::find(v.begin(), v.end(), 5) == v.end() // checks that vector<int> v has no value 5.
2) 例如,使用新的C++11 std::bind,但为了获得真正的建议,我需要更多使用MyAddFn的上下文。
对于1,使用std::find算法。如果元素不存在,它将迭代器返回到末尾。在这种情况下,请添加元素。
第二个问题。您可以使用对象而不是函数:
#include <vector>
#include <algorithm>
class apply_me
{
int multiplicator_;
public:
apply_me(const int multiplicator) : multiplicator_(multiplicator)
{};
int operator ()(const int element) const
{
return element*multiplicator_;
};
};
int main()
{
std::vector<int> v;
std::transform(v.begin(), v.end(),v.begin(), apply_me(3));
}
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用向量的template_back函数
- 如何删除除 ArduinoSTL 的向量函数之外的所有函数
- 在使用标准向量函数时引发'std::bad_alloc'实例后调用的终止
- 我可以为向量函数返回 NULL<double> 吗?
- 将多个向量(函数结果)组合到一个使用模板中
- 如何在 c++ 中制作通用字符串到向量函数
- 为什么简单的C++向量函数会产生越界的下标
- 为什么我的向量函数的返回值总是 1
- 模板化向量函数参数的std::is_base_of
- 我的程序没有运行,多维向量函数
- C 如何使2D向量函数
- 如何从 v8 返回向量<T> C++ 函数
- C++ 如何使此向量函数接受任何分隔符
- 我想返回一个向量函数,<Competition>但被告知竞争是未声明的,并且我正在使用未定义的类'std::vector'
- C++:如何在类中使用向量函数
- 自己的"Insert"方法(向量)函数模板
- c++中的内存泄漏:循环中的向量函数
- 如何添加一个元素到一个向量函数
- 向量函数'at'