关于 STL 中 vector 的初始化问题

2014-08-05 17:33:35 +08:00
 razrlele
我首先定义了一个结构体
struct operator{
int x;
int y;
char o;
}operator;

然后用vector定义了一个结构体数组
int N;
cin >> N;
vector<operator> a(N);

然后在一个自定义函数里面把结构体数组当作形参

void function(vector<operator>& a)

我知道我错了。。。但是具体错在哪里,求指正。。
1566 次点击
所在节点    C
31 条回复
razrlele
2014-08-05 18:08:24 +08:00
@acros 原来如此!!因为之前如果是int的话形参引用都是vector<int>所以才自以为是的以为结构体也是如此
razrlele
2014-08-05 18:09:12 +08:00
@bombless 我需要动态分配数组,所以才用vector
bombless
2014-08-05 18:11:25 +08:00
感觉就是少写了一些逻辑…
yxz00
2014-08-05 18:16:06 +08:00
先学会看报错再来问问题
shyrock
2014-08-05 18:32:08 +08:00
询问错误至少应该把错误贴上来吧。。。
losincasablanca
2014-08-05 18:32:33 +08:00
实在看不出来还可以单步,看看逻辑哪出错了。
SErHo
2014-08-05 18:42:26 +08:00
struct operator{
...
}operator;
这样定义的化, operator 是一个类型为 struct operator 的值,不是一个类型。
razrlele
2014-08-05 18:49:35 +08:00
@yxz00
@shyrock
恩,不好意思,忘记贴报错了,其实就是想问一下vector和结构体一起该怎么用,所以一开始也没有贴源码
dreamworldcn
2014-08-05 18:58:34 +08:00
贴一个刚写的

<script src="https://gist.github.com/dreamworld/2a356a5ee25573aa55be.js"></script>
erenno1
2014-08-05 22:55:12 +08:00
canautumn
2014-08-06 01:05:48 +08:00
@razrlele 你理解的不对吧,这跟int和结构体根本没关系。他的意思是说你传入的是vector<coor>的一个元素的引用,就是coor&,但你定义的形参是vector<coor>& a,编译时会报错说a没有o的成员,因为程序里a是vector<coor>&,而不是coor&

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/126255

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX