如何从数组转换为关联容器?

时间:2013-11-08 14:03:40

标签: c++ arrays containers associative-array

我有一个字符数组,其中我按顺序存储了交替的键和值。什么是用于存储键/值对的合适容器,如何将数组内容移动到此容器中?

3 个答案:

答案 0 :(得分:1)

目前,C ++标准建议使用以下关联容器:

  1. 有序关联容器:std::mapstd::multimapstd::setstd::multiset
  2. 无序关联容器:std::unorderd_mapstd::unordered_multimapstd::unordered_setstd::unordered_multiset
  3. 我认为适合您的容器可以是std::mapstd::unordered_map

答案 1 :(得分:0)

请参阅标准库地图http://www.cplusplus.com/reference/map/map/

高级语言隐藏它,但由于数组是原始存储格式,关联数组不是,不要忘记!

答案 2 :(得分:0)

方法1:将字符串拆分为键值字符串数组。将它们分成键和值并放入地图。

方法2:通过char解析字符串char,并跟踪解析所处的状态:键值对之间,解析键,键和值之间,解析值。当状态改变远离解析值时,添加最后一个键和值来映射。

如果键和值可以有转义字符,则Latter方法很有用,在这种情况下,您还有一些状态,例如:在key中的escape char之后,在值中转义为char之后。