簡體   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