[問題] std::vector相關

看板C_and_CPP作者 (oddguy{marine@sc})時間14年前 (2009/12/16 01:10), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串1/1
關于std::vector,小弟有一點疑惑: vector.at()分別有返回const reference和reference的不同,是如何決定調用哪一個? -- “我的征途是星辰之海洋……” “The only easy day...was yesterday.” Msn: marine_kyq@hotmail.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.108.45.242

12/16 01:20, , 1F
注意at()後面的const。這取決於你的this指針的修飾。
12/16 01:20, 1F

12/16 01:25, , 2F
如果我將at()的返回值當做賦值表達式的左值,來修改vector
12/16 01:25, 2F

12/16 01:26, , 3F
中元素的內容,可以做到么?也就是這時返回的是reference?
12/16 01:26, 3F

12/16 01:33, , 4F
首先,你的this指針const與否決定了你返回的是const ref還是
12/16 01:33, 4F

12/16 01:33, , 5F
non-const ref,其次,這兩種都是左值,再再次,即使都是左值
12/16 01:33, 5F

12/16 01:34, , 6F
const ref指向的東西也不是可以修改的,除非你知道它真的指向
12/16 01:34, 6F

12/16 01:34, , 7F
非const
12/16 01:34, 7F

12/16 08:52, , 8F
感謝說明
12/16 08:52, 8F
文章代碼(AID): #1B9yC8f9 (C_and_CPP)