0

我们如何在 std::vector 中搜索特定元素并对其进行计数?它必须很快。请帮忙,谢谢。

这是我到目前为止所拥有的:

// Lets assume the Database is sorted (which it will be)
std::vector< std::string > Database( 3 );
Database.push_back( "Password123" );
Database.push_back( "HelloWorld!!!" );
Database.push_back( "HelloWorld!!!" );
//...

std::string Password = "HelloWorld!!!";

// Search and count Password?
// Should return true and 2

哦,我听说索引比迭代器慢。这是真的吗?

4

1 回答 1

5

使用std::count

int num = std::count(Data.begin(), Data.end(), target);

但是如果这个“必须很快”,那么你应该考虑在查询之前对你的向量进行排序,因为这样你就可以使用更快的方法来计数(例如std::lower_boundstd::upper_bound)。

于 2013-03-03T01:24:14.623 回答