将int推送到向量时出错

Error when pushing int to vector

本文关键字:向量 出错 int      更新时间:2023-10-16

将整数推送到向量member reference base type 'value_type' (aka 'int') is not a structure or union时出错。发生了什么,这是我的错误?

int angles;
cin >> angles;
int i = 0;
while (i < angles) {
  string s;
  cin >> s;
  vector<int> ints;
  for (int j = 0; j < 2; j++) {
    ints[i].push_back( s[j] - '0' );
  }
  i++;
}

ints[i].push_back( s[j] - '0' );的语法不正确。

它应该读ints.push_back( s[j] - '0' );。您当前要做的是在int上调用push_back命令,这将导致错误。

您可能正在尝试这样做:

void loadAngles() {
   size_t angles;
   cin >> angles;
   vector< vector<int> > ints(angles);
   for (int i=0; i<angles; ++i) {
      string s;
      cin >> s;
      const char* str = s.c_str();
      for (size_t j=0; j<2; ++j) {
     ints[i].push_back( str[j] - '0' );
      }
   }
}