[問題] structure vector沒有辦法在function使用

作者: bjiyxo (若自礌)   2015-03-29 16:45:21
開發平台(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>>' 的成員
煩請各位大大幫忙解惑!
作者: bibo9901 (function(){})()   2015-03-29 16:52:00
傳 reference => vector<stu> & stulist
作者: bjiyxo (若自礌)   2015-03-29 17:01:00
感謝樓上的回答,這也是個一勞永逸的方法!不過有不用call by reference的辦法嗎?
作者: dirkc (3781615)   2015-03-29 17:12:00
stulist[0]和stulist[0][0]的差異能分得出來,這題就解了
作者: bjiyxo (若自礌)   2015-03-29 17:26:00
樓上我不是很明白,因為我change這個function裡面會對stulist裡面的元素做修改,且stulist是一個一維陣列,所以我原先的想法傳入一個vector指標應該沒有錯吧?樓上大大好像認為我傳的是二維陣列?還是我有東西沒搞懂?
作者: LPH66 (-6.2598534e+18f)   2015-03-29 17:39:00
四樓應該是想說「stulist[0] 跟 (*stulist)[0] 的差別」
作者: dirkc (3781615)   2015-03-29 17:43:00
"vector"可以用做一維陣列,但"vector指標"並不是
作者: bjiyxo (若自礌)   2015-03-29 18:01:00
原來如此!我大概明白了!感謝樓上各位大大!
作者: Killercat (殺人貓™)   2015-03-29 18:31:00
唉,陣列指標隱性轉換害人不淺其實你寫成stulist->at(0).eng就會對了不過既然都用c++了 用by reference吧
作者: CumCumCum (2 hard 2 hard)   2015-04-02 22:36:00
指標不是用箭頭嗎

Links booklink

Contact Us: admin [ a t ] ucptt.com