我有一个字符数组,其中我按顺序存储了交替的键和值。什么是用于存储键/值对的合适容器,如何将数组内容移动到此容器中?
答案 0 :(得分:1)
目前,C ++标准建议使用以下关联容器:
std::map
,std::multimap
,std::set
,std::multiset
std::unorderd_map
,std::unordered_multimap
,std::unordered_set
,std::unordered_multiset
我认为适合您的容器可以是std::map
或std::unordered_map
。
答案 1 :(得分:0)
请参阅标准库地图: http://www.cplusplus.com/reference/map/map/
高级语言隐藏它,但由于数组是原始存储格式,关联数组不是,不要忘记!
答案 2 :(得分:0)
方法1:将字符串拆分为键值字符串数组。将它们分成键和值并放入地图。
方法2:通过char解析字符串char,并跟踪解析所处的状态:键值对之间,解析键,键和值之间,解析值。当状态改变远离解析值时,添加最后一个键和值来映射。
如果键和值可以有转义字符,则Latter方法很有用,在这种情况下,您还有一些状态,例如:在key中的escape char之后,在值中转义为char之后。