vector内部实现问题

dodo_yy dodo_yy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
不说闲话,先发程序和结果.

#include <iostream>
#include <vector>

using namespace std;

int main()
{
int start = 1;
vector<int> v1(100);
v1.push_back(1); //
cout<<v1.size()<<endl; // 101
cout<<v1.capacity()<<endl; // 200
int end = 1;
cout<<sizeof(v1)<<endl; // 12
cout<<sizeof(start)<<endl; // 4
cout<<&start-&end<<endl; //9

cout<<"After reserve"<<endl;
v1.reserve(1000);
cout<<v1.size()<<endl; //101
cout<<v1.capacity()<<endl; //1000
cout<<sizeof(v1)<<endl; //12
system("PAUSE");
return 0;
}



/***********************************
****** DEV C++ *******
101
200
12
4
9
After reserve
101
1000
12
**********************************/

/*******************************
******** visual c++ ********
101
150
20
4
10
After reserve
101
1000
20
******************************/

我们问题主要是
sizeof(v1) = 12,20 那个是什么大小?? 难道是类的大小。
还有 &start-&end 为什么是9,10 ?这个为什么不是8,或者其他.
哪位从vector内部实现的角度给我讲讲?
...全文

相关推荐

评论 20
收藏 已收藏
分享
返回顶部
dodo_yy
C++ 语言 65,214 成员 250,514 内容