看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): structure vector沒有辦法在function裡call structure的元素 我要做的事情類似這樣 struct stu { int eng; }; void change(vector<stu> *stulist, int length) { if (stulist[0].eng == stulist[1].eng)//這行有問題編譯不過 //do something } 如果要修正的話請問各位大大會怎麼樣修正呢? 錯誤結果(Wrong Output): error C2039: 'eng' : 不是 'std::vector<stu,std::allocator<_Ty>>' 的成員 煩請各位大大幫忙解惑! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.178.61 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1427618723.A.725.html
bibo9901: 傳 reference => vector<stu> & stulist 03/29 16:52
bjiyxo: 感謝樓上的回答,這也是個一勞永逸的方法!不過有不用 03/29 17:01
bjiyxo: call by reference的辦法嗎? 03/29 17:02
dirkc: stulist[0]和stulist[0][0]的差異能分得出來,這題就解了 03/29 17:12
bjiyxo: 樓上我不是很明白,因為我change這個function裡面會對 03/29 17:26
bjiyxo: stulist裡面的元素做修改,且stulist是一個一維陣列, 03/29 17:27
bjiyxo: 所以我原先的想法傳入一個vector指標應該沒有錯吧? 03/29 17:27
bjiyxo: 樓上大大好像認為我傳的是二維陣列?還是我有東西沒搞懂? 03/29 17:29
LPH66: 四樓應該是想說「stulist[0] 跟 (*stulist)[0] 的差別」 03/29 17:39
dirkc: "vector"可以用做一維陣列,但"vector指標"並不是 03/29 17:43
bjiyxo: 原來如此!我大概明白了!感謝樓上各位大大! 03/29 18:01
Killercat: 唉,陣列指標隱性轉換害人不淺 03/29 18:31
Killercat: 其實你寫成stulist->at(0).eng就會對了 03/29 18:32
Killercat: 不過既然都用c++了 用by reference吧 03/29 18:33
CumCumCum: 指標不是用箭頭嗎 04/02 22:36