本文介绍一种简单的map处理带有标签数组的问题。
在c++项目中,需要输出一组数,如下,“my0”、“my1”、"my2"分别为这三组数的标签。
"my0":593,517,748,517,748,648,593,648,2062
"my1":519,263,662,263,662,453,519,453,2498
"my2":362,230,554,230,554,396.5,362,396.5,2471
可通过map创建这组数。
#include <iostream>
#include <string>
#include <map>
using namespace std;
// 主函数
int main(int argc, char** argv)
{
//创建一个map容器,数据类型都是string
map <string, string> my;
stringstream mystr0;
stringstream mystr1;
stringstream mystr2;
mystr0<<593<<","<<517<<","<<748<<","<<517<<","<<748<<","<<648<<","<<593<<","<<648<< ","<<2062;
mystr1<<519<<","<<263<<","<<662<<","<<263<<","<<662<<","<<453<<","<<519<<","<<453<<","<<2498;
mystr2<<362<<","<<230<<","<<554<<","<<230<<","<<554<<","<<396.5<<","<<362<<","<<396.5<<","<<2471;
my["my0"]= mystr0.str();
my["my1"]= mystr1.str();
my["my2"]= mystr2.str();
cout << "my0的数据为:" << my["my0"] << endl;
return 0;
}
类似python中字典的表示法,若有一数组mydict,数据类型都是string。
mydict = {"my0":"593,517,748,517,748,648,593,648,2062",
"my1":"519,263,662,263,662,453,519,453,2498",
"my2": "362,230,554,230,554,396.5,362,396.5,2471"
}
在Python下,可通过查询Key值获取对应的string类型的value——“一组数”,便可解析出这组数。
if __name__ == '__main__':
mydict = {"my0":"593,517,748,517,748,648,593,648,2062",
"my1":"519,263,662,263,662,453,519,453,2498",
"my2": "362,230,554,230,554,396.5,362,396.5,2471"
}
myarray = mydict["my1"].split(",")
print(myarray[0])
输出为:519。
以上程序比较简单,未验证,请根据提示信息修改。