Вечер добрый! Есть std::map myMap, который я заполнил из file.txt файла(заполнился и отображается корректно)
1 qwerty
2 sef
3 hhhh
Далее я от пользователя принимаю значения инт id1 и стринг name1 и хочу их сравнить на совпадение пары в myMap. Если коротко, то у меня не получилось это сделать нормально. Как это сделать корректно?
bool
my_cmp(const std::map<int, std::string>& m,
const std::pair<int, std::string>& p)
{
auto It =m.find(p.first);
return (It != m.end()) && (It->second == p.second);
}
int main() {
std::map<int, std::string> Mymap{ {1, "qwerty"} /*...*/};
std::cout << std::boolalpha
<< my_cmp(Mymap, { 1, "qwerty" });
return 0;
}
А если компилятор умеет С++17, то можно одной строкой:
bool my_cmp(const std::map<int, std::string>& m,
const std::pair<int, std::string>& p) {
if (auto It = m.find(p.first); It != m.end() && It->second == p.second) return true;
return false;
}
В итоге я сделал так: создал ф-ю, которая принимает две инициализированные карты(одна подкачана из файла.тхт и имеет множество пар-ключей "1 qwer, и тд...", вторая же принята от пользователя и содержит одну пару "2 qws"), пробегается по обоим и сравнивает на совпадение пар-ключей. Хз что с оптимизацией, но сравнение проходит четко.
void my_cmp(std::map<int, std::string>& r, std::map<int, std::string>& p)
{
std::map<int, std::string>::iterator i = p.begin(); i != p.end();
std::map<int, std::string>::iterator ri = r.begin(); ri != r.end();
int bil = 0;
for (ri; ri != r.end(); ++ri)
{
for (i; i != p.end(); ++i) {
if ((i->second) == (ri->second) && (i->first) == (ri->first)) {
if ((i->second) == (ri->second) && (i->first) == (ri->first)) {
bil = 1;
}
}
}
}
if (bil==1) {
std::cout << "Entering allowed" << std::endl;
std::cout << "____________________________" << std::endl;
std::cout << std::endl;
}
else {
std::cout << "Entering not allowed" << std::endl;
std::cout << "____________________________" << std::endl;
std::cout << std::endl;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Не могу создать переменную структуруЕсли мы объявляем структуру в том же файле где и main функция, то все инициализируется нормально
При удалении спрайта функциями this->removeChild(sprite,true); или this->removeChildByTag(1) или sprite->removeFromParent(); вылетает играВ чём заключается проблема? Вроде...
Есть такой код, как я понял он полностью отключает соединения, мне интересно для чего его используют в UDP сетиИли его вообще не используют...
В С++ я полный ноль, начал изучать по нужде буквально сутки назадЕсть проблема