Как искать определенный элемент и считать его в std :: vector? Он ДОЛЖЕН быть быстрым. Пожалуйста, помогите, спасибо.C++ Что было бы самым быстрым способом поиска и подсчета для определенного элемента в 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
Ох, и я слышал, индексация происходит медленнее, чем итератора. Это правда?
Вы не можете выиграть линейное время, если ваш вектор не отсортирован. – Pubby
Ну, вы не можете подсчитать конкретные элементы, не проверяя хотя бы один элемент по крайней мере. Таким образом, сложностью наиболее эффективного решения будет O (n). – LihO
Хорошо, скажем, он был отсортирован. Как мы делаем это? :) – user2117427