在字符串向量中查找char的坐标(c++)
Find coordinates of a char in a vector of strings (C++)
我正在用c++编写一个简单的ASCII Roguelike RPG,我像往常一样使用@字符来代表玩家。
我将关卡保存在。txt文件中,这样没有编程知识的人也可以编辑和创建自己的关卡。
当我运行游戏时,我打开第一个关卡文件并将逐行push_back关卡放入字符串向量。
我可以通过它的坐标访问向量中的某个字符,例如:
char certainChar = levelData[3][3];
我要求最快的方法来做相反的:得到一个字符的坐标,只出现在向量中一次。
有什么建议吗?
这归结为在无序列表/数组中进行搜索。
对于每行:对于本行中的每个字符:这是所需的字符吗?-> yes ->记录索引并返回。
如果你的水平很低,这是OK的。
更快的方法是将@-坐标单独存储在关卡文件中,并在程序执行期间跟踪它们。
尝试使用这个函数
std::pair<int, int> findCoordinates(std::vector<std::string> > & levelData) {
for (unsigned int i = 0; i < levelData.size(); ++i) {
std::size_t found = levelData[i].find('@');
if (found != std::string::npos) return std::make_pair(i, found);
}
return std::pair<int, int>();
}
但是对于包含长字符串的大向量,这可能很慢。
相关文章:
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- 比较两个节点坐标的最佳方法是什么?
- 在 OpenGL 中将笛卡尔世界坐标转换为球面局部坐标
- SDL2 调整窗口大小后如何缩放鼠标坐标?
- 如何在C++中获取坐标?
- 如何将 x.y 坐标的值存储在不同的数组中
- 如何将鼠标坐标转换为"mm"
- 重心坐标并不总是有效(3d)
- 尝试渲染像素坐标时,简单线条渲染失败
- 使用 GTK3 C++获取指针坐标
- 从 CGAL 3D 网格生成中获取顶点坐标的 -6.27744e+66:mesh_implicit_sphere示例
- 我想制作设置鼠标回调函数,以便在仍然按下鼠标左键时连续传递坐标
- 将鼠标悬停在图片框上时,如何显示带有 x-y 坐标的十字准线光标?
- 跳转到通过输入坐标定义的控制台屏幕位置
- QImage::p ixel 和 QImage::setPixel 坐标超出范围误差
- 如何从 3d 对象文件中获取 3d 坐标
- 使用C++中的链表对与原点的距离、x 和 y 坐标进行排序