現在、文字と数字をキーとして使用するベクトルを使用する C++ プログラムがあります。例えばmyvector['A'][1] = line.substr(0,7)
。しかし、myvector[1][3] = line.substr(0,7)
両方のキーを数字として使用できるようにするには、それが必要です。
私の現在の作業コードでは、これがありました:
std::vector<std::vector<std::string> >myvector;
文字列を整数に変更するだけでうまくいくと思いましたが、「セグメンテーション違反 (コアダンプ)」または「代入で 'std::basic_string' を 'int' に変換できません」というエラーが発生します。
std::vector<std::vector<int> >myvector;
エラーが非常に曖昧であることは知っていますが、C++ は初めてなので、エラーに対する他の特定のコマンド応答を見つける方法がわかりません。私はウェブ上でたくさんの例を探しましたが、残念ながらそれらのいずれもコンパイルできませんでした. 任意の支援をいただければ幸いです。お時間をいただきありがとうございます。
何らかの形で範囲外のインデックスを使用している場合は、インデックスを入力する方法を次に示します。
myvector[rn].resize(100);
std::ifstream fin(argv[3]);
std::string line;
int rn = 0;
int rln = 0;
while( getline(fin, line) ) {
rn = 0;
while(rn < line.length()/7){
myvector[rn][rln] = line.substr (rn*7,7);
rn++;
}
rln++;
}
「line.substr (rn*7,7)」を出力すると、結果は期待どおりになり、この変数をベクターに設定できません。また、rn は約 10+ で終了し、rln は 6 で終了します。