【发布时间】:2021-11-12 10:38:56
【问题描述】:
我曾计划为所有类型实现一种类似于 FORTRAN 的 INDEX 函数。 这会是一个正确的解决方案吗? ** 在 cmets 之后编辑 **
template <typename T>
bool contains(std::vector<T>& vec, T value){
if (std::any_of(vec.begin(), vec.end(), [value](T j) { return value == j; }))return true;
return false;
}
注意 泛型实现的浮点类型比较有一个陷阱!
【问题讨论】:
-
当您描述所有类型时,您的意思是
std::array、std::vector和C-like array? -
我打算至少使用基本类型,int、float、double、string,...
-
if (A) return true; else return false;=return A;. -
旁白:我会为这个函数使用名称
contains。我希望index返回value在vec中的位置 -
你会修改向量吗??? -> 通过 const 引用接受它!