[英]Accessing vector in class in vector
我覺得我正在以正確的方式解決這個問題,但我不斷收到錯誤“EXC BAD ACCESS”
我有一類person
,一切公共相當簡單。
class person
{
public:
int id;
vector<float> scores;
float avgscore;
};
然后我使用new運算符制作一個person
的向量
vector<person> *people = new vector<person>[num_persons];
然后我嘗試訪問類person
內部的向量
(*people)[current_person].scores.push_back(temp);
其中current_person
= 0, temp
是整數。
我是以正確的方式處理矢量嗎?
嘗試這個:
vector<person> people(num_persons);
接着...
people[current_person].scores.push_back(temp);
這條線
vector<person> *people = new vector<person>[num_persons];
新向量只創建一個向量,但它包含0個元素,訪問(*people)[0]
是未定義的行為,您的錯誤消息EXC BAD ACCESS
告訴故事。 您仍然需要向訪問它的人添加person元素,例如
person p1;
people->push_back(p1); // add element to vector
(*people)[0].scores.push_back(temp); // now you are ok to visit first element.
// don't forget to delete vector at right place
delete people;
由於你已經使用了vector,你可以繼續使用vector而不是使用原始指針。
std::vector<person> people;
person p1;
people.push_back(person);
people[position].scores.pus_back(score);
// don't need to worry releasing people memory anymore.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.