Я пытаюсь имитировать словарь python в C++. Например, я хочу построить что-то вродеСоздание многоуровневого словаря: перевод на python на C++
{"The Dark Night Rises": {"year": 2012, "StoryLine": "this is the story.....", "Genres": ["action","crime","Thriller"]}}
Я использую карту STL и списки для создания такого рода словаря. Но я не уверен, как использовать итераторы. Может ли кто-нибудь помочь мне с примером построения вышеуказанного словаря. Я начал что-то вроде ниже, чтобы просто создать простой словарь, например {"cast":["action","crime","Thriller"]}
. Я смущен, как создавать вышеупомянутые многоуровневые словари и, особенно, перебирать их.
#include<iostream>
#include<string>
#include<map>
#include<iterator>
#include<list>
using namespace std;
class MultiLevDict
{
private:
list<string> lis;
map<string,list<string> > MultiDict;
public:
void Setter();
void Display() const;
};
void MultiLevDict::Setter()
{
string field;
string cast;
int sizeCast;
cout<<"enter the field of the movie:";
cin>>field;
cout<<endl;
cout<<"how many cast are there in this movie?:";
cin>>sizeCast;
for (int i=0; i<sizeCast; i++)
{
cin>>cast;
lis.push_back(cast);
}
MultiDict[field]=lis;
}
void MultiLevDict::Display() const
{
list<string>::iterator lisIt;
}
любой особой причины для предпочтения '' map' из list's в 'multimap'? –
@Zhenya. Ничего, о чем я заботился. –
@JohanLundberg. Я хотел бы расширить свой вопрос, спросив, как вы можете хранить несколько типов данных внутри карты? например, теперь мы объявляем map> на этой карте мы можем сохранить ключ строки и значение типа списка, теперь скажем, что я хочу иметь {"someval": ["val1"], "somval2": «строка здесь», «someval3»: 24}. Я нашел ссылку [CODE] [http://www.dreamincode.net/forums/topic/129708-c-map-with-multiple-data-types/]. Увидев эту ссылку, я думаю что-то вроде map >. –
Rkz