社区
C++ 语言
帖子详情
c++ 基础问题
后知后觉的山哥
2009-06-03 12:56:48
iStack::iStack(const int cap):_stack(cap),_top(0)
{
}
这是一个类的构造方法, _stack是 vector<int> 类型, _top是 int型, 那么这种初始化的方式 在底层都做了些什么? _top比较好理解, 但是_stack是怎么实现的? 他是相当于 vector<int> _statck(cap)?, 这样初始化有什么好处吗?
...全文
163
10
打赏
收藏
c++ 基础问题
iStack::iStack(const int cap):_stack(cap),_top(0) { } 这是一个类的构造方法, _stack是 vector 类型, _top是 int型, 那么这种初始化的方式 在底层都做了些什么? _top比较好理解, 但是_stack是怎么实现的? 他是相当于 vector _statck(cap)?, 这样初始化有什么好处吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
后知后觉的山哥
2009-06-03
打赏
举报
回复
初始化列表中做初始化 是不是要先于 istack自身的构造方法 假如 istack有一个基类, 那是 基类的构造先执行 还是初始化列表中的东西先被执行到。。。。。。。
猫已经找不回了
2009-06-03
打赏
举报
回复
[Quote=引用 2 楼 binghuazh 的回复:]
引用楼主 slamjam 的帖子:
iStack::iStack(const int cap):_stack(cap),_top(0)
{
}
这是一个类的构造方法, _stack是 vector <int> 类型, _top是 int型, 那么这种初始化的方式 在底层都做了些什么? _top比较好理解, 但是_stack是怎么实现的? 他是相当于 vector <int> _statck(cap)?, 这样初始化有什么好处吗?
要看_stack怎么实现了
1)_stack(cap),那么就是初始化为0,top指向第0个元素, //此时capac…
[/Quote]
qizhao2001
2009-06-03
打赏
举报
回复
这里就是相当于你定义局部变量的 vector <int> _statck(cap) 一样。
但是很明显,作为类成员的 _statck不能像上面那样写 ( vector <int> _statck(cap) )来初始化 _statck
对象,而是要在构造函数上写(构造函数就是用来初始化该类的):
iStack::iStack(const int cap):_stack(cap),_top(0)
类的成员的初始化就要写在构造函数名 :之后的初始化列表中。
mujiok2003
2009-06-03
打赏
举报
回复
[Quote=引用楼主 slamjam 的帖子:]
iStack::iStack(const int cap):_stack(cap),_top(0)
{
}
这是一个类的构造方法, _stack是 vector <int> 类型, _top是 int型, 那么这种初始化的方式 在底层都做了些什么? _top比较好理解, 但是_stack是怎么实现的? 他是相当于 vector <int> _statck(cap)?, 这样初始化有什么好处吗?
[/Quote]
初始化列表的作用。_stack是vector,一般是以类似数组的连续内存保存数据,可以查看STL源代码。 他是相当于 vector <int> _statck(cap)的。这样之后,_stack已经包含cap个0了,与分配一定的内存,避免多次内存分配带来的开销。这和vector的allocator(内存分配器)有关了。
0
pengzhixi
2009-06-03
打赏
举报
回复
预先配置一定的空间同时将元素初始化为0.
jhony_lee
2009-06-03
打赏
举报
回复
vector <int> _statck(cap),预先配置一定得空间,可以避免插入元素时,元素的移动。
blingpro
2009-06-03
打赏
举报
回复
[Quote=引用楼主 slamjam 的帖子:]
iStack::iStack(const int cap):_stack(cap),_top(0)
{
}
这是一个类的构造方法, _stack是 vector <int> 类型, _top是 int型, 那么这种初始化的方式 在底层都做了些什么? _top比较好理解, 但是_stack是怎么实现的? 他是相当于 vector <int> _statck(cap)?, 这样初始化有什么好处吗?
[/Quote]
要看_stack怎么实现了
1)_stack(cap),那么就是初始化为0,top指向第0个元素, //此时capacity = size = cap
2)如果是_stack.reserve(cap),那么就是预留cap大的空间,每次push_back就压进一个元素。//capacity = cap,size = 0;
amossavez
2009-06-03
打赏
举报
回复
vector <int> _statck(cap)?, 这样初始化有什么好处?
vector自己有这样的构造函数,使得vector有cap个元素,大小为0
sszwbuaa
2009-06-03
打赏
举报
回复
[Quote=引用楼主 slamjam 的帖子:]
iStack::iStack(const int cap):_stack(cap),_top(0)
{
}
这是一个类的构造方法, _stack是 vector <int> 类型, _top是 int型, 那么这种初始化的方式 在底层都做了些什么? _top比较好理解, 但是_stack是怎么实现的? 他是相当于 vector <int> _statck(cap)?, 这样初始化有什么好处吗?
[/Quote]
这样初始化的好处是可以提高效率;
另外对于const类型成员、引用类型成员,以及没有默认构造函数的成员必须以这种方式初始化。
AbnormalSubmarine
2009-06-03
打赏
举报
回复
[Quote=引用 7 楼 hairetz 的回复:]
引用 2 楼 binghuazh 的回复:
引用楼主 slamjam 的帖子:
iStack::iStack(const int cap):_stack(cap),_top(0)
{
}
这是一个类的构造方法, _stack是 vector <int> 类型, _top是 int型, 那么这种初始化的方式 在底层都做了些什么? _top比较好理解, 但是_stack是怎么实现的? 他是相当于 vector <int> _statck(cap)?, 这样初始化有什么好处吗?
要看_stack怎么实现了
1)_stack(cap),那么就是初始化为0,top指向第…
[/Quote]
+++++++++++++++++++++++++++++++++++++++++++++++++++++
C++
面试
问题
总结——(CPP
基础
、网络编程)
本文详细介绍了
C++
面试中关于网络编程的
问题
,包括main函数执行前后的行为,网络粘包
问题
的产生、原因、解决方法,以及长连接与短连接的区别。此外,还探讨了内存池设计和网络加密算法的重要性。
【0
基础
秒入门】matplotlib-cpp 常见
问题
解决方案
matplotlib-cpp是一个
C++
库,封装了Python Matplotlib绘图库部分功能,可在
C++
环境创建可视化图表。本文介绍其
基础
,针对新手使用时遇到的编译、依赖、功能限制
问题
,分别给出解决步骤,助新手更好理解和使用该库。
C++
基础
问题
本文围绕
C++
基础
问题
展开,介绍了形参带缺省值的函数、内联函数、函数重载等内容。阐述了
C++
支持函数重载而C语言不支持的原因,还讲解了const的用法、左值引用和右值引用,以及深入剖析了
C++
的new和delete运算符,对比了与C库函数的差异。
C++
面试常见
问题
(
C++
基础
)
本文整理了
C++
面试常见的
基础
问题
,涵盖sizeof、const、static、volatile等关键字的使用,还介绍了字节对齐、字节序、class和struct区别等知识,同时讲解了宏定义、内联函数、类型转换等内容,为
C++
面试提供了全面的
基础
参考。
C++
基础
问题
总结
这篇博客总结了
C++
的
基础
问题
,包括空类的sizeof值(总是为1),拷贝构造函数的作用及避免无限递归的注意事项,单例模式的实现与线程安全,lambda函数的概念和用法,以及智能指针在内存管理中的应用,旨在帮助读者深入理解
C++
的关键概念。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章