私は、渡されたベクトル関数でintのマップとstringのベクトルにアクセスする方法を教えてください。 私はその機能でそれらを印刷したいだけです。(intとベクトルの文字列のベクトル)のベクトルにアクセスする方法
#include <iostream>
#include <vector>
#include <map>
#include <string>
using namespace std;
typedef vector< map< int, vector<string> > > vmis;
typedef map< int, vector<string> > mis;
typedef vector<string> vstr;
void passing_vector(const vmis &meetings);
//return size of vector
template< typename A > size_t n_elements(const A& a)
{
return sizeof a/sizeof a[ 0 ];
}
int main()
{
vmis meeting_info;
mis meeting_members;
vstr sw_vec;
vstr sys_vec;
string sw_team[] = {"Ricky", "John", "David"};
string sys_team[] = {"Simmon", "Brad", "Schmidt", "Fizio"};
sw_vec.insert(sw_vec.begin(), sw_team, sw_team + n_elements(sw_team));
sys_vec.insert(sys_vec.begin(), sys_team, sys_team + n_elements(sys_team));
meeting_members.insert(make_pair(520, sw_vec));
meeting_members.insert(make_pair(440, sys_vec));
meeting_info.push_back(meeting_members);
passing_vector(meeting_info);
return 0;
}
void passing_vector(const vmis &meetings)
{
vmis::iterator itvmis = meetings.begin();
//how do i access map of int and vectors of string.
//I just want to print them.
}
私は主な機能でそれらを印刷する方法を知っています。
vmis::iterator itvims = meeting_info.begin();
for(int i = 0; i < meeting_info.size(); i++)
{
mis::iterator itm = meeting_members.begin();
for(itm; itm != meeting_members.end(); itm++)
{
cout << itm->first << " : ";
vstr::iterator it = itm->second.begin();
for(it; it != itm->second.end(); it++)
cout << *it << " ";
cout << endl;
}
}
所望の出力 440:サイモンブラッド・シュミットFizio 520:リッキージョン・デビッド
この提案は常に歓迎されていることのより良い方法があるかどうか。
C++ 11の機能を使用できますか( 'for(const auto&meeting:meeting_info)')? – kfsone
私はそれを使用しませんでした。これは私がSTLを使用している最初のので、私はそれについて知識がありません。 – bluelight