我有一个 3 分量向量结构Vector3
,用 3int
表示 X、Y 和 Z。对于每个 3D 点(我有或多或少 200-300 个不同的 3D 点)我有一个string
.
我想要做的是有一个数据结构来检查string
该位置是否存在。我想使用 astd::map
并且我制作了这段代码,但没有得到很好的结果:
它的错误是它只运行该else
部分一次,并且string
一遍又一遍地返回相同的内容。
我的Vector3
课程是 Ogre3D 中的课程:http ://www.ogre3d.org/docs/api/html/classOgre_1_1Vector3.html
String WorldGenerator::createPlatformBorder(Vector3 size)
{
static std::map<Vector3, String> generatedBorders;
if (generatedBorders.find(size) != generatedBorders.end())
{
return generatedBorders[size];
}
else
{
String blockName = requestNewPlatformBorderName();
generatedBorders.insert(std::pair<Vector3, String>(size, blockName));
// some logic
return blockName;
}
}
请你帮帮我好吗?
请注意,该功能requestNewPlatformBorderName()
运行良好,因此不存在错误。这是它的代码:
String requestNewPlatformBorderName()
{
static int counter = 0;
return StringConverter::toString(++counter) + "-platform-border";
}