Итак, у меня есть структура
struct float3
{
float x, y, z;
};
, и я пытаюсь создать функцию, которая принимает значения x, y, z и сопоставляет их с ключами 0, 1, 2 для их соответствующего измерения.Я написал код ниже, но он выдает некорректное alloc_exception.Похоже, мне не хватает памяти.
KdTree::float2map(std::vector<float3>& data)
{
std::vector<std::map<int, float> > m_pnts;
int cnt = 0;
for(int i = 0; i = data.size(); i++)
{
std::map<int, float> tmp;
tmp.insert(std::make_pair(0, data[i].x));
tmp.insert(std::make_pair(1, data[i].y));
tmp.insert(std::make_pair(2, data[i].z));
m_pnts.push_back(tmp);
std::cout << m_pnts.size() << std::endl;
}
}
return m_pnts;
}
Я все еще довольно новичок в C ++, поэтому я уверен, что есть много других способов сделать это или оптимизировать этот подход.Проблема в том, что я должен сделать это 33 914 095 float3s, и я не могу придумать другой способ добиться этого.Любая помощь будет принята с благодарностью.