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