相关疑难解决方法(0)

NaN是关联容器的有效键值吗?

考虑C++中有序和无序的关联容器double.

NaN有效的密钥类型吗?

对于有序的容器,我应该说"不",因为它不尊重严格的弱排序.

对于无序容器,我不知道.

以下是GCC 4.6.2中发生的情况:

#include <map>
#include <unordered_map>

#include <cmath>

#include <iostream>
#include <prettyprint.hpp>

int main()
{
  typedef std::map<double, int> map_type; // replace by "unorderd_map"

  map_type dm;
  double d = std::acos(5); // a good nan

  dm[d] = 2;
  dm[d] = 5;
  dm[d] = 7;

  std::cout << "dm[NaN] = " << dm[d] << ", dm = " << dm << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

对于有序地图,我得到:

dm[NaN] = 7, dm = [(nan, 7)]
Run Code Online (Sandbox Code Playgroud)

对于无序地图,我得到:

dm[NaN] = 0, dm …
Run Code Online (Sandbox Code Playgroud)

c++ unordered-map map nan

27
推荐指数
2
解决办法
1600
查看次数

标签 统计

c++ ×1

map ×1

nan ×1

unordered-map ×1