如何使用C++创建父系统
How to create parent system with C++?
我需要知道如何通过名称或编号索引不同类型的对象(或者我可以通过特定父级中的每个项目循环的任何内容)或者有没有其他方法可以处理大量对象而不这样做。
obj1.blah = blah
obj2.blah = blah
处理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);
}
使用映射,您可以创建关联数组,即通过字符串名称引用对象的不同实例。
#include <map>
class ObjectType {
public:
void DoSomething()
{
std::cout << "Did somethingn";
};
};
std::map<std::string, ObjectType> objects;
objects["object1"] = ObjectType();
objects["object2"] = ObjectType();
objects["object2"].DoSomething();
...
相关文章:
- 我需要帮助创建一个评分系统,但它一直给我一个错误,注释掉的整数是给我带来麻烦的部分
- 如果在创建对象时创建了 VPTR,那么为什么具有虚拟功能的类的大小在 32 位系统上为 4,在 64 位机器上为 8
- Shell_NotifyIcon在系统托盘中创建空白、无响应的图标
- 是否可以在 64 位系统中为 11 位系统中的图形创建位邻接数组
- 如何将向量添加到结构中以创建一个库存系统,在该系统中,我可以仅使用一个结构向系统添加多种不同的葡萄酒
- C++ Mingw32 创建进程() 失败,错误代码 2:系统找不到指定的文件
- 在64位系统上创建一个非常大的数组的缺点是什么
- 关于为许可证系统创建密钥生成器的问题
- 在bazel中创建仅系统头库的正确方法是什么
- 如何创建一个具有空值、递减编号系统和.txt文件输入值的二维阵列网格
- 使用本机C 包装器作为NCurses,如何创建菜单/子菜单系统
- 如何通过Chrome Pepper C API创建和打开文件系统
- 如何在不打开的情况下创建带有 boost 文件系统的文件
- 是否可以从一系列路径迭代器或子路径创建文件系统 TS basic_path
- 在鼠标光标平面上绘制或创建自定义动画系统光标
- 用C++创建一个简单的图书库系统
- Visual studio创建了错误大小的窗口和错误的系统指标
- 系统调用 open() 创建可执行文件
- 多线程 - 系统创建的附加线程
- C++ 系统创建的终止过程&&限制其执行时间