私はどのように私は名前または番号(または特定の親のすべての項目をループすることができます何でも)で異なるタイプのオブジェクトのインデックスを知っている必要があります または私は大規模な好きではないオブジェクトの量。C++で親システムを作成するには?
obj1.blah = blah
obj2.blah = blah
私はどのように私は名前または番号(または特定の親のすべての項目をループすることができます何でも)で異なるタイプのオブジェクトのインデックスを知っている必要があります または私は大規模な好きではないオブジェクトの量。C++で親システムを作成するには?
obj1.blah = blah
obj2.blah = blah
マップを使用すると、連想配列を作成できます。つまり、オブジェクトの異なるインスタンスを文字列名で参照できます。
#include <map>
class ObjectType {
public:
void DoSomething()
{
std::cout << "Did something\n";
};
};
std::map<std::string, ObjectType> objects;
objects["object1"] = ObjectType();
objects["object2"] = ObjectType();
objects["object2"].DoSomething();
...
ありがとうございました。 – kapesu8
C++で多くのオブジェクトを処理する標準的な方法は、コンテナを使用することです。あなたは非常に簡単にそれを反復処理することができます
#include <vector>
#include "MyObject.hpp" // contains your object type definition
int main()
{
std::vector<MyObject> v = populate_container_with_objects();
今:vector
古いコンパイラで
for (auto & ob : v)
{
do_something_useful_with(ob);
}
}
を、あなたが言っているでしょう:
for (std::vector<MyObject>::iterator it = v.begin(), end = v.end(); it != end; ++it)
{
do_something_useful_with(*it);
}
あなたは、アレイ/ベクトル/マップのような意味します(キーが必要な場合)? – chris
この質問は文脈なしでは意味がありません。あなたは何を達成しようとしていますか? C++の一部であるコンテナライブラリについて知っていますか? –
配列のいくつかに異なる型変数を格納したかっただけです。 – kapesu8