作者:
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:00stulist[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原來如此!我大概明白了!感謝樓上各位大大!
唉,陣列指標隱性轉換害人不淺其實你寫成stulist->at(0).eng就會對了不過既然都用c++了 用by reference吧
作者:
CumCumCum (2 hard 2 hard)
2015-04-02 22:36:00指標不是用箭頭嗎