如何在数组向量上使用 std::find
How to use std::find on a vector of array?
我在Ubuntu 14.04,g++ 4.9.3上。下面的代码
std::vector<std::array<int, 3>> a;
a.push_back({2, 3, 1});
a.push_back({1, 3, 4});
a.push_back({3, 1, 2});
auto it = std::find(a.begin(), a.end(), {2, 3, 1});
返回错误
couldn't deduce template parameter ‘_Tp’
std::find(a.begin(), a.end(), {2, 3, 1});
^
经过几次谷歌搜索,我想出了一种更复杂的方法来使用 std::find_if 和 lambda 函数来解决这个问题,但为什么这段代码不起作用呢?
你只需要更详细一点。
auto it = std::find(a.begin(), a.end(), std::array<int, 3>{2, 3, 1});
已通过 gcc 5.3.1 验证。不确定您的旧版本的 gcc 是否可以处理此问题。
相关文章:
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 为什么在向量上使用 std::find() 时会出现错误?
- 使用 std::find 时没有匹配的函数调用错误
- STL std::find() C++
- 如何将 std::find() 与 2d std: 数组一起使用?
- 如果迭代器没有因插入而无效,则使用std::find和C::insert()是线程安全的
- 未按值排序的std::find和std::any_of
- 在libc++和libstdc++之间的std::map上使用std::find时的实现差异
- 有没有办法在Cython中导入std::find find_if等?
- 由 std::find() 返回的迭代器不可取消引用
- C++ std::find() 寻址返回向量的类函数时的意外行为
- 在 std::find 中使用来自不同命名空间的运算符
- 使用 std::find 和用户提供的谓词 - 自制的 find() 重载
- 如何使用 std::find 找到元素的所有位置?
- 使用带有反向迭代器的std :: find()
- C++ STL: std::find with std::map
- std::find是否隐式修复无效参数
- 如何在 std::vector 内的自定义对象上使用 std::find
- std::find on empty vector 是否会导致未定义的行为
- 使用 std::find 在向量中定位随机生成的数字