Avatar ·

Como verificar se uma chave existe em std::map em C++?

Olá a todos! Sou novo em C++ e encontrei um problema ao trabalhar com std::map. Tenho um dicionário que armazena pares "chave-valor", por exemplo, ID do usuário e seu nome. Preciso verificar se existe alguma chave específica neste dicionário antes de acessá-la, para evitar erros. Tentei usar o operador [] para acesso, mas se a chave não existe, ele cria uma nova entrada com essa chave e um valor padrão, o que não é adequado para mim.\n\nAqui está meu exemplo de código:\n\n```cpp\n#include \n#include \n#include \n\nint main() {\n std::map users;\n users[1] = "Alice";\n users[2] = "Bob";\n\n // Tentando verificar se a chave 3 existe\n if (users[3] == "") { // Isso cria uma entrada com a chave 3!\n std::cout << "Chave 3 não encontrada" << std::endl;\n }\n\n return 0;\n}\n```\n\nComo posso verificar corretamente se uma chave existe sem criar uma nova entrada? Ouvi falar sobre o método find(), mas não tenho certeza de como usá-lo corretamente. Alguém pode mostrar um exemplo de como usar find() para verificar a existência de uma chave? Também gostaria de saber se existem outras maneiras de fazer essa verificação. Agradeço desde já pela ajuda!