声明后std::map<std::string, std::string> M
有可能:
- 写入图:
M["Jack"] = "323 Union St";
- 阅读从地图:
std::cout << M["Jack"];
然而宣布后boost::associative_property_map<std::map<std::string, std::string>> PM(M)
我们无法做得更多,不:
- 写属性映射:
boost::put(PM, "Fred", "323 Union St");
- 阅读距离酒店地图:
boost::get(PM, "Fred");
你能有一个属性映射,你已经不能做一个地图呢?
上下文
考虑别人对他们来说,
#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
明显是假的。 IIUC,属性映射使用如此巨资整个BGL 1998年至2002年,以消除需要编写一个MSVC库,另一个用于GCC。 这个想法显然是,什么MSVC会处理,GCC会很乐意也处理。 现在,MSVC处理C ++ 98,为物业地图仍然是必要的或者他们只是遗迹? 为什么呢?