c++ - vector 使用的异常问题

标签 c++ vector

我在尝试编写程序时遇到了一些关于vector 的问题。我有一个逻辑,即在循环的每次迭代中比较 vector 的值。所以我初始化 vector 并将一个元素推送到每个 vector 。现在,由于我在这两个 vector 中都有一个元素,我应该能够像下面的代码那样进行比较和迭代,但事实并非如此。可能存在错误,但很难找到。

int M = 3; // I am passing values of M and N to this function
int N = 3; 
std::vector<int> X;
std::vector<int> Y;
X.push_back(1);
Y.push_back(1);
int x = 0;
for(int i = 1; i <= N; i++){
    for(int j = 1; j <= M; j++){
        if((X[x] <= i) && (Y[x] <= j)){
            if (x > 0){
                X.push_back(i);
                Y.push_back(j);
                x = x + 1;
            }
            else{
                X[0] = 1;
                Y[0] = 1;
                x = x + 1;
            }
        }
    }
}
for(int i = 0; i < X.size(); i++){
    cout << X[i] << "; " << Y[i] << endl;
}

我用上面的程序得到以下输出。

`1; 1`

但我需要制作这个。

`1; 1`
`1; 2`
`2; 2`

最佳答案

你有未定义的行为

x 为零时,您不会将新条目推送到 vector 中,而是增加 x 并在下一次迭代中访问 X[1 ] 和超出范围的 Y[1]

关于c++ - vector 使用的异常问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15585580/

相关文章:

c# - 有关 Vault.dll 和 Vaultcli.dll 的信息

c++ - 'Try This' vector 使示例词典中的单词发出蜂鸣声。编程原则与实践

c++ - 3个错误: error: 'Entry' was not declared in this scope. error: template argument 1 is invalid. error: invalid type in declaration before '(' token

c++ - C++ 和 operator[] 中的自定义 Vector 和 Matrix 类

c++ - 视锥体和透视矩阵

c++ - 使用 std::make_exception_ptr 的奇怪行为

c++ - 哪种方法最适合生成随机数?

c++ - 如何声明一个长度为 1024 位的整型变量?

c++ - 将结构添加到映射 C++

java - 将 Vector 元素从一个类更改为另一类