C++ map insert 函数返回值详解
C++ 中的map的insert函数返回一个pair对象,其中pair是一个具有两个成员变量的结构体,分别为first和second,表示插入的元素的迭代器和一个布尔值。
具体来说,insert函数的返回值是一个pair<iterator, bool>类型的对象。其中iterator是一个指向插入元素的迭代器,bool表示插入是否成功。
如果插入成功,则bool为true;如果插入失败(因为已经存在相同的键),则bool为false,并且iterator指向已存在的元素。
以下是一个示例代码:
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
std::pair<std::map<int, std::string>::iterator, bool> result = myMap.insert(std::pair<int, std::string>(1, "one"));
if (result.second) {
std::cout << "Insertion successful!" << std::endl;
} else {
std::cout << "Insertion failed!" << std::endl;
std::cout << "Existing element: " << result.first->first << " " << result.first->second << std::endl;
}
return 0;
}
在上述示例中,我们尝试将一个键值对(1, 'one')插入到myMap中。由于该键不存在,插入成功,因此result.second为true。如果再次执行插入操作,由于键已经存在,插入失败,result.second为false,并且result.first指向已存在的元素。
原文地址: http://www.cveoy.top/t/topic/qao5 著作权归作者所有。请勿转载和采集!