-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 回答