代码之家  ›  专栏  ›  技术社区  ›  Puppy

C++中的关联容器-异常而非默认构造

  •  2
  • Puppy  · 技术社区  · 14 年前

    我正在寻找C++中的关联容器,而不是要求它的元素是默认可构造的,将抛出一个异常,其中请求的密钥没有找到。这基本上是因为我要用一个呼叫主对象并告诉主对象正在分配多少内存的标准分配器来替换标准分配器,因此需要知道“主”在哪里。

    2 回复  |  直到 14 年前
        1
  •  2
  •   David Rodríguez - dribeas    14 年前

    对于std::map,最简单的答案是不使用 operator[] . 使用 insert 创建新元素和 find 定位现有元素。如果你不使用 运算符[] 包含的类型不需要是默认可构造的,并且您可以决定在 找到 找不到对象。

        2
  •  1
  •   Fred Foo    14 年前

    你在找 at members 属于 boost::unordered_map ? 这些不在 std::tr1::unordered_map ,阿法克特。