-2

名前または番号のいずれかで異なるタイプのオブジェクトにどのようにインデックスを付けるかを知る必要があります(または、特定の親のすべてのアイテムをループできるものは何でも)または、大量のオブジェクトを処理するためにできる他の方法はありますか?好きなことをせずに。

obj1.blah = blah
obj2.blah = blah
4

2 に答える 2

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();
...
于 2012-05-06T14:39:19.520 に答える
1

C ++で多くのオブジェクトを処理する標準的な方法は、コンテナを使用することですvector

#include <vector>
#include "MyObject.hpp" // contains your object type definition

int main()
{
    std::vector<MyObject> v = populate_container_with_objects();

これで、非常に簡単に繰り返すことができます。

    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);
}
于 2012-05-06T14:39:29.153 に答える