0

「set illegal indirection error」が表示されますが、何が間違っているのかわかりません。私がやろうとしているのは、フォームを持つinput.txtファイルから入力を取得することです

string1 string2
string3 string4
etc.

そして、重複することなく文字列に昇順で番号を付けてから、それらをいくつかの関数で使用し、値を構造体 StringInt に格納します。しかし、この奇妙なエラーが発生し、どこから修正を開始すればよいかわかりません。

struct StringInt {
    std::string name;  // associate name and number for each input string
    int number;
};

int main(int argc, char* argv[]) {
  tot_strings = 100;
  std::string vert1, vert2;
  std::set<std::string> inGraph(0, tot_strings);  // this is the set in question
  std::set<std::string>::iterator sit;
  std::vector<StringInt> stringInts(tot_strings);  // Edit: forgot to mention this initially
  StringInt* si;
  int icv1, icv2;

  std::ifstream myfile2 ("input.txt");
  if (myfile2.is_open()) {      
      while(myfile2 >> vert1 >> vert2) {
          myfile2 >> vert1 >> vert2;

  if (inGraph.find(vert1) != inGraph.end()) {  // not sure if I do this correctly
      icv1 = i++;
      si->name = vert1;
      si->number = icv1;
      inGraph.insert(vert1);                   // here's the insert that might be 
      stringInts.push_back(*si);               // causing of the error
  }
  else {
      icv1 = si->number;
  }
  if (inGraph.find(vert2) != inGraph.end()) {
      icv2 = i++;
      si->name = vert1;
      si->number = icv2;
      inGraph.insert(vert2);
      stringInts.push_back(*si);
  }
  else {
      icv1 = si->number;
  }

  // use icv1 and icv2 as int inputs in functions below


}

私が持っているものは理にかなっていますか?「不正な間接化エラーの設定」を修正するにはどうすればよいですか? 編集: std::vector stringInts(tot_strings) をコードに含めましたが、例に含めるのを忘れました。

4

0 に答える 0