use*_*514 4 c++ arrays stl insert map
在下面的例子中,使用1)与2)的优缺点是什么.是否有任何内存分配优势,任何好处,如果没有空间不足?
map < int, string> Employees;
// 1) Assignment using array index notation
Employees[5234] = "Mike C.";
// 2) Assignment using member function insert() and STL pair
Employees.insert(std::pair<int, * char>(1923,"David D."));
Run Code Online (Sandbox Code Playgroud)
第一个用键5234创建一个映射,并返回对那里保存的字符串的引用,"Mike C"被分配给它 - 重要的一点是,如果该键已经存在,这将覆盖该键的值(因为引用返回值).
第二种方法检查密钥是否存在,如果密钥已存在则不会覆盖.
至于内存分配,如果映射不存在,两者都会将地图大小增加1.以上是两种方法AFAIK的唯一区别.