c++ - C++中的坐标系

标签 c++ arrays vector c++11 stdvector

<分区>

您好,我想使用 C++ 创建一个坐标系。我将从用户那里获取一些 (x,y) 坐标并使用它来制作坐标系(更多 map )样式。我怎样才能做到这一点?它需要看起来像下图。我应该使用二维数组还是 vector 以及如何使循环以不同方式进行标记?

(2,0)(4,3)(7,8) 需要看起来像

 **1************
 ***************
 ***************
 ***************
 ***1***********
 ***************
 ***************
 ********1******

这是我目前得到的代码,但问题是我不能在其中标记多个坐标。我只是用了 2 个 for 循环来完成它

for(int i = -6; i < 7; i++) 
    if (i < 0) 
        cout<<" "<<i; 
    else 
        cout<<"  "<<i; 
cout<<endl; 

for(int i = 0; i < 15; i++) 
    { 
        cout<<(char)(i + 49); 
        for(int j = -6; j < 7; j++) 
        if(i == y - 1 && j == x) 
            cout<<" x "; 
        else 
            cout<<" . "; 

        cout<<(char)(i + 49)<<endl; 
    } 

请指教。谢谢!!

最佳答案

我建议您使用 vector<string>vector<vector<char> >甚至 vector<vector<string> >取决于您打算在单元格中存储什么。如果一个单元格是单个字符,那么第一个选项可能是最好的。 之后创建 map 就非常简单了:

int n,m;
cin >> n >> m;
vector<string> a(n, string(m, '*');

我不确定“.”是什么和上面代码中的“x”,但我想象剩下的就是输入几对坐标并替换 vector<string> 中的相应元素。用'1'。

希望这对您有所帮助。

关于c++ - C++中的坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12799477/

相关文章:

c++ - 为什么数组从 0 而不是 1 开始? (C, C++)

javascript - 在 JavaScript 中动画结束后跟踪并显示数组元素的到达顺序

c - 删除字符串数组项并移动 c 中的其余项

matlab - 3D 空间中多个 2D 矢量 [字段] 之间的插值

c++ - VS2013模板类奇怪的行为

c++ - 阵列无法过早输出一行

c++ - vector 元素大小

c++ - 全局函数如何调用类中的特定函数?

c++ - 如何将 lambda 传递给 lambda?

c - 当我溢出分配的字符数组时,为什么我的 C 程序不会崩溃?