我試圖讓一小段代碼工作。我有一個名爲'get_object_radius'的函數,它在一個區域搜索'Creature'的實例,並將它們的指針推向一個矢量,然後返回矢量。訪問指針向量?
然後我想循環遍歷它們並在函數外部顯示它們的名字。我很確定我正確地將它們添加到矢量中,但是我沒有正確地循環指針矢量,是嗎?
下面是相關的代碼段(即不工作):
//'get_object_radius' returns a vector of all 'Creatures' within a radius
vector<Creature*> region = get_object_radius(xpos,ypos,radius);
//I want to go through the retrieved vector and displays all the 'Creature' names
for (vector<Creature*>::iterator i = region.begin(); i != region.end(); ++i) {
cout<< region[i]->name << endl;
}
任何想法我做錯了嗎?
啊,謝謝。我不知道爲什麼我試圖像數組一樣訪問它...... – Matthew 2012-02-11 03:32:22
@Matthew可能是因爲在C中,指針和數組是相同的事情,並且很容易忘記C++迭代器的工作方式不同。 – Crashworks 2012-02-11 03:37:42
如果這是一個被用作數組索引的指針,它將會失敗。 – 2012-02-11 03:42:16