2次元ベクトルをC++で生成しようとすると、範囲外のエラーが発生し続けます。どこが間違っていますか?私は同じ問題を生成すると私は思う私の問題の短縮バージョンです。あなたのtypedefが間違っている2次元ベクトル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;
}
}
}
コードには2次元ベクトルはありません。また、「エラー」が発生した場合は、実際のエラーメッセージを投稿するのに便利です。 (P.S:NI、NO、i、j、N、Rはあまり良い変数名ではなく、記述的なものを使用することを検討してください) – Borgleader
これは 'NO.at(i).at(j)= R;'はコンパイルすべきではありませんか?実際にはそうではありません:http://ideone.com/ukPags –