向量,迭代器和std ::发现

有没有什么办法可以使用​​不同类型的迭代器在不同的载体? 或者,是否有一个函数,返回向量元素的位置作为一个整数?

std::vector<DWORD>::iterator it; // Iterator // monsterQueue is a <DWORD> vector it = std::find(bot.monsterQueue.begin(), bot.monsterQueue.end(), object); // Check do we have the object in the queue if(it != bot.monsterQueue.end()) // If we do have it { bot.monsterDists.at(it) = mobDist; // monsterDists is <int> vector bot.monsterCoordX.at(it) = PosX; // monsterCoordX is <int> vector bot.monsterCoordY.at(it) = PosY; // monsterCoordY is <int> vector too }

这是一些示例代码,没有任何人有任何指针?

--------------解决方案-------------

尝试

std::vector<DWORD>::iterator it; // Iterator

// monsterQueue is a <DWORD> vector

it = std::find(bot.monsterQueue.begin(), bot.monsterQueue.end(), object);
// Check do we have the object in the queue

if(it != bot.monsterQueue.end()) // If we do have it
{

为size_t IDX =它- bot.monsterQueue.begin()

bot.monsterDists.at(idx) = mobDist; // monsterDists is <int> vector
bot.monsterCoordX.at(idx) = PosX; // monsterCoordX is <int> vector
bot.monsterCoordY.at(idx) = PosY; // monsterCoordY is <int> vector too
}

也因为这可能是一个更好的主意,以创建与4名成员“怪物”,monsterDist和coordinateX和coordinateY一个结构和存储结构对象的载体。

index = std::distance( monsterQueue.begin(), it );

简单地计算

it - bot.monsterQueue.begin()

得到的索引。

您可以使用的std ::向量随机访问:

DWORD find_this = 0x0;
int pos = 0;
for (; i<monsterQueue.size(); ++i)
{
if (monsterQueue[i]==find_this)
break;
}

循环后,POS机将在环路传出,即在那里find_this所在。 除外,当然如果find_this是连在载体中。

你有没有想过改变monsterQueue的基本类型的对象,包含或有引用/指针monsterDists等

分类:C# 时间:2015-03-15 人气:0
本文关键词: C#中,迭代器,矢量
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.182 (s). 10 q(s)