簡體   English   中英

訪問矢量在矢量中的類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM