关于MAP的多类型映射有关问题
关于MAP的多类型映射问题。
map<DWORD, vector<DWORD>, DWORD> ProLoopRevPN;
例如这样的定义,看到过类似的定义,查了很久没查到的类似定义的详细的使用方法。
现在在使用的问题是
(1)map中的find和count不能使用。
(2)第3个元素无法访问和赋值。
求解答。
------解决方案--------------------
template<typename Key,
typename Mapped>
ref class map
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
System::Collections::Generic::IDictionary<Gkey, GMapped>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
明显是只有2个,三个编译能通过?
------解决方案--------------------
是我搞错了,可以有3个参数,第3个参数实际上给的是个提供比较的函数指针,你这样写相当于没有比较函数,自然find等函数不能使用
------解决方案--------------------
map的数据是以关联数组的方式组织的,其中的两个类型一个是键,另一个是值,不能再有第三个类型加入其中了。
楼主的需求应该自己定义一个数据结构,然后把它作为map的值类型加入。这样你需要值里有多少类型就是你自己随意定义的了。
map<DWORD, vector<DWORD>, DWORD> ProLoopRevPN;
例如这样的定义,看到过类似的定义,查了很久没查到的类似定义的详细的使用方法。
现在在使用的问题是
(1)map中的find和count不能使用。
(2)第3个元素无法访问和赋值。
求解答。
------解决方案--------------------
template<typename Key,
typename Mapped>
ref class map
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
System::Collections::Generic::IDictionary<Gkey, GMapped>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
明显是只有2个,三个编译能通过?
------解决方案--------------------
是我搞错了,可以有3个参数,第3个参数实际上给的是个提供比较的函数指针,你这样写相当于没有比较函数,自然find等函数不能使用
------解决方案--------------------
map的数据是以关联数组的方式组织的,其中的两个类型一个是键,另一个是值,不能再有第三个类型加入其中了。
楼主的需求应该自己定义一个数据结构,然后把它作为map的值类型加入。这样你需要值里有多少类型就是你自己随意定义的了。