で見つける何かが私はこのようなベクトルを持っている:C++ベクトル
struct RIFT_MONSTER_SPAWN
{
DWORD dwWorldId;
D3DXVECTOR3 vPos;
};
vector<RIFT_MONSTER_SPAWN> vecMSpawn;
あなたはそれがx,y,z
値を保持する2つの値dwWorldId
とD3DXVECTOR3 vPos;
vPos
を開催します見ることができるように。
私がしたいことは、ベクトルが真でループし、worldId
がbeeingが渡されたworldId
と一致する場合です。それはworldId
に関連しているvPos
を返します。
std::find find_all
とcount
を使用している場合。 しかし、常に バイナリ==演算子が見つかりませんでした左手の演算子のタイプ
私はこれに固執しています。どんな助けもありがとう。
親切でよろしくお願いいたします。ここで
は、私はこのコードwhile (Lua.TableLoop(-2))
{
RIFT_MONSTER_SPAWN rSpawnPoint;
rSpawnPoint.dwWorldId = static_cast<int>(CScript::GetDefineNum(Lua.GetFieldToString(-1, "dwWorldId")));
rSpawnPoint.vPos.x = static_cast<float>(Lua.GetFieldToNumber(-1, "x"));
rSpawnPoint.vPos.y = static_cast<float>(Lua.GetFieldToNumber(-1, "y"));
rSpawnPoint.vPos.z = static_cast<float>(Lua.GetFieldToNumber(-1, "z"));
m_vecMSpawnPoint.push_back(rSpawnPoint);
Lua.Pop(1);
}
これはベクトルではなく、構造体でもあり、D3DXVECTOR3も構造体です。エラーの原因となっているコードを投稿する必要があります。 –
std:find_ifを使用して、独自の比較機能を提供してください。 – Jonas
void CRiftMatch :: GetMoverSpawnPoints(dwWorldId) { \t std :: vector vecSpawn = CRiftMng :: GetInstance() - > m_vecMSpawnPoint; \t std :: vector ::イテレータit = std :: find(vecSpawn.begin()、vecSpawn.end()、dwWorldId); \t OUTPUTDEBUGSTRING( "\ n GetMoverSpawn%d"、* it); } –