练习11.15:
map<int,vector<int>>::mapped_type是一个vector<int>类型
map<int,vector<int>>::key_type是一个int类型
map<int,vector<int>>::value_type是一个pair<int,vector<int>>类型
练习11.16:使用second成员赋值
#include <iostream>
using namespace std;
#include <map>
#include <string>
#include <set>
#include <vector>
int main()
{
map<string, int>m = { {"hello",10},{"world",20},{"c++",30} };
map<string, int>::iterator map_it = m.begin();
int n = 50;
map_it->second = n;
for (auto c : m)
{
cout << c.first << ": " << c.second << endl;
}
system("pause");
return 0;
}
练习11.17:
copy(v.begin(),v.end(),inserter(c,c.end())); 该调用合法,用来增加multiset的新元素,没有改变原有关键字
copy(v.begin(),v.end(),back_inserter(c)); 该调用不合法,multiset没有push_back成员
copy(c.begin(),c.end(),inserter(v,v.end())); 该调用合法,将关键字复制到vector中
copy(c.begin(),c.end(),back_inserter(v)); 该调用合法,使用push_back插入,vector有push_back成员
练习11.18:map_it的类型为map<string,int>::const_iterator.
#include <iostream>
using namespace std;
#include <map>
#include <string>
#include <set>
#include <vector>
int main()
{
map<string, int>mp = { {"hello",10},{"world",20},{"c++",30} };
map<string, int>::const_iterator map_it = mp.cbegin();
while (map_it != mp.cend())
{
cout << map_it->first << ": " << map_it->second << endl;
++map_it;
}
system("pause");
return 0;
}
练习11.19:
multiset<Sales_date, bool(*)(const Sales_date&, const Sales_date&)>bookstore(compareIsbn);
multiset < Sales_date, bool(*)(const Sales_date&, const Sales_date&)>::const_iterator it = bookstore.cbegin();