에서 클래스의 벡터를 액세스,하지만 난 대중 모두와 아주 간단한 클래스 person
을 가지고 "EXC BAD ACCESS"벡터
오류가 계속.
class person
{
public:
int id;
vector<float> scores;
float avgscore;
};
그때 그때 클래스 내부 벡터에 액세스를 시도
vector<person> *people = new vector<person>[num_persons];
new 연산자를 사용 person
s의 벡터를 만들 person
(*people)[current_person].scores.push_back(temp);
여기서 current_person
= 0, 및 temp
은 정수입니다.
나는 올바른 방법으로 벡터를 처리합니까?
전 stackoverflow에서 검색했으며 초기화에는 둥근 대괄호, 즉 새 벡터 (num_persons)을 사용해야합니다. 하지만 왜 그런지 모르겠지만 일관성이없는 것처럼 보입니다. 이것에 대한 답변을 upvote 것입니다. –
jonathanasdf
일관성이 없습니다. 초기화에 []을 사용하는 * 유일한 * 것은 C 스타일 배열입니다. 다른 모든 것은 초기화 목록에() (또는 {})을 사용합니다. 이것은 벡터 포인터를'[]'지우지 않기 때문에 의미가 있습니다. – Max
@Max note :'std :: map <>'은 실패한 find 뒤에 암시 적 삽입을 위해'operator []()'를 사용합니다. 내가 동의하는 나머지. – WhozCraig