可能重复:
如何在 std::vector 中查找项目?
我正在使用 C++ Builder 创建一个 VCL Forms 应用程序。我还有一个约会对象的向量数组,每个对象都有一个名称、类型、提醒日期/时间、日期/时间、位置和评论。
我想实现一个查找功能,让用户在给定特定条件的情况下找到约会。
用户可以通过选择名称、类型等或每一个的组合来选择在向量数组中查找约会。
对于这种情况,最好的编程概念是什么?向量不大。不超过 10 或 20 个元素。
谢谢
可能重复:
如何在 std::vector 中查找项目?
我正在使用 C++ Builder 创建一个 VCL Forms 应用程序。我还有一个约会对象的向量数组,每个对象都有一个名称、类型、提醒日期/时间、日期/时间、位置和评论。
我想实现一个查找功能,让用户在给定特定条件的情况下找到约会。
用户可以通过选择名称、类型等或每一个的组合来选择在向量数组中查找约会。
对于这种情况,最好的编程概念是什么?向量不大。不超过 10 或 20 个元素。
谢谢
使用std::find_if()
并定义所需的谓词(如果 C++11,您可以使用 lambda 函数)。
请参阅在线演示http://ideone.com/Md7sp。
std::find_if(A.begin(),A.end(),isthatit(conditions));
whereisthatit
是从条件构造的谓词对象。
如果您有许多标准,您应该考虑针对不同搜索索引的 Boost.MultiIndex 容器。 http://www.boost.org/doc/libs/1_51_0/libs/multi_index/doc/tutorial/index.html