Я хочу использовать функцию карты C ++, map :: find , чтобы определить, находится ли конкретная строка на карте.Я знаю, что find возвращает map::end
, но я не уверен, как его использовать.Поэтому, если одна и та же строка существует как в names_
, так и в info_
, я хочу, чтобы она выводила эту строку на экран.
В моем заголовке:
std::vector<std::string>names_;
std::map<std::string, unsigned int> info_;
В .cpp(ЭТОТ КОД НЕПРАВИЛЬНЫЙ):
for(unsigned int i=0;i<names_.size();i++){
std::map<std::string, unsigned int>::iterator it;
it = info_.find(names_[i]);
if info_.find(names_[i]) != info_.end()
std::cout << names_[i] << std::endl;
}
Что я делаю неправильно во фрагменте кода .cpp?Я знаю, что это что-то с итераторами.