楼主:
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指标不是用箭头吗