将int推送到向量时出错

时间:2015-03-25 14:49:44

标签: c++ vector

我将整数推送到向量时出错: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++;
}

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

您可能正在尝试这样做:

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' );
      }
   }
}