1.如何在构造时就完成数据输入?
2.查map里的数据时,如果key不存在, 也会返回一个值,如何避免?
就象下面的例子
map<string,ing> table; //建立一张固定的表
table["str1"] = 1; // 这些数据在使用时都不会改变,不知道可否建立const的map?
table["str2"] = 2;
...
return table["str_no_exist"];
//这个key是不存在的,但仍会有返回值,如果解决这个问题?
1
template<class InputIterator>
map(
InputIterator _First,
InputIterator _Last
);
这个构造函数能初始化数据
2
派生一个你需要的类自map,从新写operator[]函数
或者用委托的方式,在operator[]操作的时候修改你的操作.
plainsong(短歌) 大侠解答过:
std::map<int, int>::value_type map_init_data[2] =
{
map<int, int>::value_type(1, 1),
map<int, int>::value_type(2, 2)
};
const map<int, int> a_map(map_init_data, map_init_data + 2);
数组中的元素必须按key有序;
注意构造函数的参数是用[begin, end)定义的,所以第二个参数应该是首地址加数组长度,而不是长度减一。