关联容器 - C ++中的异常而不是default-construct

时间:2010-11-26 14:42:55

标签: c++ allocator

我正在寻找C ++中的关联容器,而不是要求它的元素是默认构造的,会抛出一个异常,其中请求一个未找到的键 - 编辑:在相应的函数中,显然不是所有这些都需要默认构造。这基本上是因为我正在将一个标准分配器替换为一个主机,并告诉主对象分配了多少内存,因此需要知道“home”的位置。

2 个答案:

答案 0 :(得分:2)

std :: map的最简单答案是不使用operator[]。使用insert创建新元素,使用find找到现有元素。如果不使用operator[],则包含的类型不需要是默认可构造的,如果find找不到对象,则可以决定抛出异常。

答案 1 :(得分:1)

您是否正在寻找boost::unordered_map的{​​{3}}?这些不在std::tr1::unordered_map,AFAICT。