返回信息流vector<int> vector1;
int n = sizeof(vector1);
n为20,而且我试过了,不论int换成什么类型,n都是20,为什么呢?
我是这样理解的:
vector本质是一个模板类,所以vector1就是一个对象名。vector1这个对象占用的内存空间是一定的,恒为20。
这是一条镜像帖。来源:北邮人论坛 / cpp / #45508同步于 2010/11/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
定义一个vector<int> vector1,那么sizeof(vector1)是多少呢?
starwars
2010/11/1镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 starwars 的大作中提到: 】
: push_back多少数也是20
: 【 在 yyjkdnsy 的大作中提到: 】
: : push进去21个数再看看
: ...................
我想sizeof可能返回的是模板的信息,至于里面多少个元素没有关系。
你可以查看下sizeof的相关功能
vector里面也是动态数组,既然是指针,对其取大小是没意义的
【 在 starwars (East Direction Red) 的大作中提到: 】
: vector<int> vector1;
: int n = sizeof(vector1);
: n为20,而且我试过了,不论int换成什么类型,n都是20,为什么呢?
: ...................
我的编译器是16,vs2005,BCB的VECTOR源码数据部分:
protected:
size_type __buffer_size;
iterator __start;
iterator __finish;
__RWSTD::__rw_basis<iterator,allocator_type> __end_of_storage;