當我嘗試在C++中填充2d向量時,我總是收到超出範圍的錯誤。我哪裏錯了?下面發佈是我相信會產生相同問題的問題的縮短版本。錯誤2d向量C++
#include <vector>
#include <stdio.h>
#include <cstdlib>
#include <iostream>
typedef std::vector<double> NA;
typedef std::vector<NA> NB;
NA NI;
NB NO;
long i=0,j=0;
int N = 10;
double R;
int main(){
for(i=0;i!=N;i++){
NO.push_back(NI);
for(j=i+1;j<N;j++){
R = rand();
NO.at(i).push_back(j);
NO.at(i).at(j) = R;
}
}
}
代碼中沒有2D向量。此外,當您收到「錯誤」時,始終有用於發佈實際的錯誤消息。 (P.S:NI,NO,i,j,N,R不是很好的變量名,請考慮使用描述性變量名) – Borgleader
這裏:'NO.at(i).at(j)= R;'不應該編譯?事實上它不是:http://ideone.com/ukPags –