C++,结构体中可以放vector吗?

liyukuneedeed 2011-02-14 10:34:36
想问下大家,C++,结构体中可以放vector吗?如下:

struct test
{
float a;
int num;
vector<string> str;
};


vector的大小是会变的,这样结构体的大小不就不固定了吗?所以想问问,结构体中是否可以放vector?

还有,vc6.0 和 2008 对这个会不会有不同的要求呢?

...全文
4837 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
GARY 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hnwyllmm 的回复:]
必然可以的,而且你的结构体大小依然是固定的,lz试一下sizeof(vector<int>),肯定是固定的值
[/Quote]
20
Qyee 2011-02-14
  • 打赏
  • 举报
回复
在c++中。你把结构体 可以看成class,只是默认成员函数 和 成员变量的 属性 不同。
第一:struct中的成员默认是public的,class中的默认是private的。
第二:在用模版的时候只能写template <class Type>或template <typename Type>不能写template <struct Type>。

类中能放vector ,struct也行。。。
  • 打赏
  • 举报
回复 1
[Quote=引用楼主 liyukuneedeed 的回复:]
想问下大家,C++,结构体中可以放vector吗?如下:
C/C++ code

struct test
{
float a;
int num;
vector<string> str;
};



vector的大小是会变的,这样结构体的大小不就不固定了吗?所以想问问,结构体中是否可以放vector?

还有,vc6.0 和 2008 对这个会不会有不同的要求……
[/Quote]

楼上对的,结构体大小不会变的,变的只是vector中allocator所管理的内存
羽飞 2011-02-14
  • 打赏
  • 举报
回复
必然可以的,而且你的结构体大小依然是固定的,lz试一下sizeof(vector<int>),肯定是固定的值
chzhn 2011-02-14
  • 打赏
  • 举报
回复
当然可以,vector<string> str;
这一句的大小起始是固定的,相当于一个结构体指针,变化只是str内部的大小而已。
昵称很不好取 2011-02-14
  • 打赏
  • 举报
回复
写个代码测试下呗
liyukuneedeed 2011-02-14
  • 打赏
  • 举报
回复
谢谢大家了

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧