簡體   English   中英

為什么分配給std :: vector索引失敗?

[英]Why would this assignment to a std::vector index fail?

我有一個class ObjectManager ,它具有一個成員變量

std::vector<std::vector<std::shared_ptr<BoardPiece>>> gameMap_;

如在指向BoardPiece類實例的共享指針的矩陣中。 將此矩陣初始化為主要包含nullptr 現在,這些變量的名字建議,球員可能會在以后放置BoardPiecegameMap_

但是,當我嘗試對矩陣進行賦值時,如

GOManager_->getGameMap().at(unsigned(c.x())).at(unsigned(c.y()))
      = GOManager_->getTileInPlay();

其中c是游戲板上圖塊的坐標,則什么也沒有發生。 當我在QT Creator中查看調試器時,在應該進行分配的位置仍然有一個空指針。

在這種情況下可能導致分配失敗的原因是什么? BoardPiece知道自己的外觀,這意味着它包含動態創建的QPixmap 不過, BoardPiece具有復制構造函數,因此這不應該成為問題。

瓦片未放入矩陣的原因確實是這樣的事實,即我沒有返回對gameMap的引用,而是返回了所述容器的副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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