C++ 地图 后面想要加两个value如何做呢
C++ map 后面想要加两个value怎么做呢?
其实是要把总共三个值存在一个map里,
我定义multimap<string,string,string> CourseSelectionMap;没出问题
可是CourseSelectionMap.insert(multimap<string,string,string>::value_type(CourseNumber,TeacherNumber,StudentNumber));
这样就不行了,怎么办呢?
------解决方案--------------------
map 只有一个key,一个value.
你想插入3个值肯定有问题。
另外定义CourseSelectionMap能通过编译,是因为multimap模板是需要三个类型,
参看multimap声明头:
------解决方案--------------------
如果你仅仅是为了将三个放在一起。
只要使用结构就可以了:
接着你可以用数组
或者使用list/vector
其实是要把总共三个值存在一个map里,
我定义multimap<string,string,string> CourseSelectionMap;没出问题
可是CourseSelectionMap.insert(multimap<string,string,string>::value_type(CourseNumber,TeacherNumber,StudentNumber));
这样就不行了,怎么办呢?
------解决方案--------------------
map 只有一个key,一个value.
你想插入3个值肯定有问题。
另外定义CourseSelectionMap能通过编译,是因为multimap模板是需要三个类型,
参看multimap声明头:
// TEMPLATE CLASS multimap
template<class _Kty,
class _Ty,
class _Pr = less<_Kty>,
class _Alloc = allocator<pair<const _Kty, _Ty> > >
class multimap
...
------解决方案--------------------
如果你仅仅是为了将三个放在一起。
只要使用结构就可以了:
struct CSchool
{
string CourseNumber;
string TeacherNumber;
string StudentNumber;
};
接着你可以用数组
CSchool s[10];
或者使用list/vector
//以list为例
typedef list<CSchool> CSchoolList;