2012-05-06 1 views
-2

私はどのように私は名前または番号(または特定の親のすべての項目をループすることができます何でも)で異なるタイプのオブジェクトのインデックスを知っている必要があります または私は大規模な好きではないオブジェクトの量。C++で親システムを作成するには?

obj1.blah = blah 
obj2.blah = blah 
+0

あなたは、アレイ/ベクトル/マップのような意味します(キーが必要な場合)? – chris

+0

この質問は文脈なしでは意味がありません。あなたは何を達成しようとしていますか? C++の一部であるコンテナライブラリについて知っていますか? –

+0

配列のいくつかに異なる型変数を格納したかっただけです。 – kapesu8

答えて

1

マップを使用すると、連想配列を作成できます。つまり、オブジェクトの異なるインスタンスを文字列名で参照できます。

#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(); 
... 
+0

ありがとうございました。 – kapesu8

1

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); 
} 
関連する問題