有没有办法在不同的 vector 中使用不同类型的迭代器?或者,是否有一个函数以整数形式返回元素在 vector 中的位置?
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个成员“monster”,monsterDist,coordinateX和坐标Y的结构,并将结构对象存储在vector中。