当前位置: 首页>>代码示例>>C++>>正文


C++ ObjectManager::add方法代码示例

本文整理汇总了C++中ObjectManager::add方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjectManager::add方法的具体用法?C++ ObjectManager::add怎么用?C++ ObjectManager::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ObjectManager的用法示例。


在下文中一共展示了ObjectManager::add方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: test

void test(void)
{
    ObjectManager<> m;
    Object<>* obj = Create<Item>();
    m.add(obj->id(), obj);
    printf("%u\n", obj->id());
    obj = Create<Item>();
    m.add(obj->id(), obj);
    printf("%u\n", obj->id());
    obj = Create<Item>();
    m.add(obj->id(), obj);
    printf("%u\n", obj->id());

    obj = Create<Object<> >();
    m.add(obj->id(), obj);
    printf("%u\n", obj->id());
    obj = Create<Object<> >();
    m.add(obj->id(), obj);
    printf("%u\n", obj->id());
    obj = Create<Object<> >();
    m.add(obj->id(), obj);
    printf("%u\n", obj->id());

    m.del(2);


    ItemNT* itemn = CreateNT<ItemNT>("hello");
    printf("%u, %s, %u\n", itemn->id(), itemn->name().c_str(), itemn->tempid());
    while (!m.add(itemn->id(), itemn))
        itemn->id()++;
    printf("%u, %s, %u\n", itemn->id(), itemn->name().c_str(), itemn->tempid());

}
开发者ID:jianglutian,项目名称:GameServer,代码行数:33,代码来源:object.cpp

示例2: testObjectManager

void testObjectManager() {
    ObjectManager<int> manager;

    std::vector<ObjectID> ids;

    static const int nb = 1024;

    for(int i = 0; i < nb; ++i) {
        ids.push_back(manager.add(i));
    }

    bool check_array[2 * nb];
    std::fill(std::begin(check_array), std::end(check_array), true);

    srand(0);
    for(int i = 0; i < nb / 2; ++i) {
        int idx = rand() % nb;

        if(manager.isValid(ids[idx])) {
            int value = manager[ids[idx]];
            check_array[value] = false;
        }
        manager.remove(ids[idx]);

    }

    for(int i = nb; i < 2 * nb; ++i) {
        ids.push_back(manager.add(i));
    }

    for(const auto& data: manager) {
        if(!check_array[data]) {
            return;
        }
    }
}
开发者ID:Hekiat,项目名称:yggdrasil,代码行数:36,代码来源:main.cpp


注:本文中的ObjectManager::add方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。