将值指定给向量(2D)的向量中的某个位置
Assign a value to a certain position in a vector of a vector (2D)
好的,我开始c++,我想给一个向量的向量中的一个特定位置赋值。我已经用数组(2D(完成了这项工作,但现在想用向量完成。
int main() {
int newLine = 10;
int newColumm = 10;
const string WALL = "u2588";
cout << endl;
string grille[10][10];
for (int j = 0; j < newColumm + 1; j++) {
int i = 0;
grille[i][j] = WALL;
}
for (int j = 0; j < newColumm + 1; j++) {
int i = newLine + 1;
grille[i][j] = WALL;
}
我想对向量做同样的事情。我有:
int main() {
int newLine = 10;
int newColumm = 10;
const string WALL = "u2588";
cout << endl;
// string grille[10][10];
vector<vector<string>> grille;
for (int j = 0; j < newColumm + 1; j++) {
int i = 0;
grille.at(i).at(j) = WALL;
}
for (int j = 0; j < newColumm + 1; j++) {
int i = newLine + 1;
grille.at(i).at(j) = WALL;
}
目前显然不起作用。(抱歉我的语言不好,英语是我的第二语言…(
您的向量没有大小。当您访问向量越界时,会得到一个std::range_error
异常。由于您没有处理异常,因此程序会崩溃。
简单的解决方法是简单地将向量预先分配到您期望的维度:
vector<vector<string>> grille(10, std::vector<string>(10));
注意,你的for循环无论如何都会自然过冲,你仍然会得到一个异常,因为它们实际上循环到了10(包括(。请记住,如果您有10个元素,则有效索引为0到9(包括0到9(。
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用迭代器时如何访问对象在向量中的位置?
- 如何将元素添加到向量的字符串位置
- 将一个向量插入另一个向量的某个位置
- 向量的内存位置不连续
- 创建一个类来访问和指定向量类型,并构建一个获取位置并为其分配区域的类
- 如何从字符串向量中选择第 n 个位置?
- 在多维向量中的特定位置添加一个值
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 如何在向量中保存位置以供以后插入?
- 查找 2D 向量的位置,该向量是类C++的一个元素
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- 如何使用向量 c++ 迭代文件中单词的位置
- 在 c++ 中检查 if 条件中的向量位置范围
- 这是查找向量中元素位置的合法方法吗?
- 如何在C 2D向量中找到对象(而不是int)的位置
- C 从特定位置插入其他向量中的载体
- 向量如何在特定位置调用复制构造函数
- 如何在特定位置不大的推动_back向量
- 嵌套的向量迭代忽略外部向量位置