繁体   English   中英

如何跟踪C ++对象

[英]How to keep track of C++ objects

我目前有一个课堂背景,用于为构成我正在制作的游戏的地面的所有块制作对象。 跟踪此较大的块列表的最佳方法是什么? 我知道如何跟踪python中的对象,但是最近我移到了C ++,我不确定如何建立易于迭代的某种列表。

在C ++中,标准库(也称为标准模板库)提供了几个存储事物集合的容器类 “事物”可以是任何数据类型,包括基本数据和用户定义的数据类型。

使用哪个容器取决于您的需求。 这是Microsoft的权威文章

最好的选择是,如果需要根据容器中的位置引用特定元素的能力,则使用vector ;或者如果元素的顺序无关紧要,则使用set ,并且需要快速检查是否有某个元素存在。

一些例子:

vector<MyClass> mycontainer; // a vector that holds objects of type MyClass
MyClass myObj;
mycontainer.push_back(myObj);
cout << mycontainer[0] << endl; // equivalent to cout << myObj << endl;

或使用一套:

set<MyClass> mycontainer;
MyClass myObj;
mycontainer.insert(myObj);
if (mycontainer.find(myObj))
   cout << "Yep, myObj is in the set." << endl;

没有一个最终的容器的原因是效率之间的权衡。 一个容器在识别其中是否存在某种元素时可能会非常快,而另一种容器对于删除任意元素是最佳选择,等等。

因此,最好的选择是考虑希望容器支持哪些行为(以及效率如何!),然后查看我之前链接的权威文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM