#include "stdafx.h"
#include <iostream>
#include <vector>
#include <map>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
wcout.imbue(std::locale("Russian_russia.OCP"));
typedef vector<int> child;
map<string,child> m_map;
int size;
string str;
wcout<<L"Введите количество элементов отображения"<<endl;
cin>>size;
for(int i = 0;i<size;++i)
{
cin>>str;
m_map.insert(map<string,child>::value_type(string(str),child(i)));
}
wcout<<L"\tпокажем отображение ...\n";
for(map<string,child>::iterator it = m_map.begin(); it != m_map.end(); ++it){
wcout<<L"ключ :";
cout<<it->first;
wcout<<L"\tзначение :";
cout<<'\t'<<it->second.size()<<endl;
}
return 0;
}
Нужно выбрать структуру хранения данных
Но что-то ничего не получается. Может это не map должна быть?
Но что-то ничего не получается. Может это не map должна быть?[/QUOTE]А что не получается? Что пишет компилятор?
Можно так сделать.
Код:
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <ctime>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(0));
wcout.imbue(std::locale("Russian_russia.OCP"));
wcout<<L"\tсоздаем сложное отображение ..."<<endl;
typedef vector<int> child;
child child_name;
map<string,child> m_map;
int size;
vector<string> m_name;
string name,name1;
wcout<<L"введите размер отображения ..."<<endl;
cin>>size;
int *count = new int[size];
for(int i = 0;i<size;++i)
{
wcout<<L"вводите ключ"<<endl;
cin>>name;
m_name.push_back(name);
}
for(int i = 0;i<size;++i)
{
wcout<<L"Сколько значений у "<<endl;
cout<<m_name<<endl;
cin>>count;
for(int j = 0;j<count;++j){
child_name.push_back(rand() % 10);
}
m_map.insert(map<string,child>::value_type(string(m_name),child(child_name)));
child_name.clear();
}
delete count;
wcout<<L"отображение заполнено ..."<<endl;
wcout<<L"\tпокажем отображение ..."<<endl;
for(map<string,child>::iterator it = m_map.begin(); it != m_map.end(); ++it){
wcout<<L"ключ :"<<endl;
cout<<it->first<<endl;
wcout<<L"значения :"<<endl;
for(int i = 0;i<it->second.size();++i)
cout<<'\t'<<it->second<<' ';
cout<<endl;
}
return 0;
}
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <ctime>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(0));
wcout.imbue(std::locale("Russian_russia.OCP"));
wcout<<L"\tсоздаем сложное отображение ..."<<endl;
typedef vector<int> child;
child child_name;
map<string,child> m_map;
int size;
vector<string> m_name;
string name,name1;
wcout<<L"введите размер отображения ..."<<endl;
cin>>size;
int *count = new int[size];
for(int i = 0;i<size;++i)
{
wcout<<L"вводите ключ"<<endl;
cin>>name;
m_name.push_back(name);
}
for(int i = 0;i<size;++i)
{
wcout<<L"Сколько значений у "<<endl;
cout<<m_name<<endl;
cin>>count;
for(int j = 0;j<count;++j){
child_name.push_back(rand() % 10);
}
m_map.insert(map<string,child>::value_type(string(m_name),child(child_name)));
child_name.clear();
}
delete count;
wcout<<L"отображение заполнено ..."<<endl;
wcout<<L"\tпокажем отображение ..."<<endl;
for(map<string,child>::iterator it = m_map.begin(); it != m_map.end(); ++it){
wcout<<L"ключ :"<<endl;
cout<<it->first<<endl;
wcout<<L"значения :"<<endl;
for(int i = 0;i<it->second.size();++i)
cout<<'\t'<<it->second<<' ';
cout<<endl;
}
return 0;
}