将成员保存在数据结构中的替代方法

时间:2011-07-28 13:43:31

标签: c++ visual-c++ data-structures mfc containers

我需要记住n个实例的值对。我知道一种解决方案,即制作一个单独的类或结构,声明2个成员变量&将它放在列表或数组中。

但是在C ++ / VC ++ MFC中还有其他有效的方法吗?

6 个答案:

答案 0 :(得分:2)

您可以使用std::pair<X,Y>std::make_pair(T1, T2)创建一对。然后,您可以将这些对存储在您选择的数据结构中,如您想要修改

std::vector<std::pair<X,Y> > or std::set<std::pair<X,Y> >

答案 1 :(得分:2)

如果问题中提到的 意味着整数值,我认为您可以使用CArray或{{1}的CPoint以代码可读性为代价。

示例代码:

CSize

答案 2 :(得分:1)

您可以使用tr1::tuple

另外,在我的article here中描述。

答案 3 :(得分:0)

还有许多其他方法可以做到这一点,但这可能是最有效的方法之一。我可以想到几种非常低效的方法。

答案 4 :(得分:0)

你可能比查看Boost::Tuple<>

更糟糕
  

元组(或n元组)是固定大小的元素集合。对,   三元组,四元组等都是元组。在编程语言中,a   元组是一个包含其他对象作为元素的数据对象。这些   元素对象可以是不同的类型。

     

在许多情况下,元组很方便。例如,元组制作   很容易定义返回多个值的函数。

答案 5 :(得分:0)

如果其中一个值是另一个的键,则可以使用Dictionary或其他地图类型的数据结构。

http://msdn.microsoft.com/en-us/library/xfhwa508.aspx (仅限.NET)

正如MSalters指出的那样,MFC也有自己的地图类型,CMap

如果您想在非CLI或MFC代码中使用类似内容,请查看std::map