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_boundおよびstd::upper_bound)。

于 2013-03-03T01:24:14.623 に答える