编程论坛
注册
登录
编程论坛
→
C++教室
是强制转换了吗?
humy
发布于 2012-08-07 14:32, 323 次点击
是c++书上的一段
const list<int>::size_type list-size=64;
list<string> slist(list-size,"eh?")
可以?虽然是常数
但类型不对
是强制转换了?
8 回复
#2
humy
2012-08-07 14:35
我说list-size
#3
humy
2012-08-07 14:45
const list<int>::size_type
list<string>::size_type一样?
#4
peach5460
2012-08-07 16:51
程序代码:
list(size_type _Count,
const
_Ty& _Val)
: _Mybase(), _Myhead(_Buynode()), _Mysize(
0
)
{
//
construct list from _Count * _Val
_Construct_n(_Count, _Val);
}
#5
pangding
2012-08-07 22:15
你是想问那两个 size_type 一样吗?是一样的。
大部分容器的第一个模版都不影响 size_type。你去看头文件就知道了,它的定义是第二个模版参数的 size_type。
这些容器的第二个模版是用来指定一个内存分配器的。一般就用默认的,很少见人会提供其它的分配器。默认分配器的 size_type 是 size_t 的 typedef。所以一般来说各个容器的都一样。
#6
pangding
2012-08-07 22:16
但我没看懂,你 list-size 是什么意思?是减法吗?
#7
peach5460
2012-08-08 08:50
以下是引用
pangding
在2012-8-7 22:16:28的发言:
但我没看懂,你 list-size 是什么意思?是减法吗?
他的list-size是一个容器的大小
然后它使用了类似list<cstring>(uint, cstring)的构造函数声明了一个变量
偶素这么认为滴
所以我找了一个list实现里面的构造函数原型贴了出来
#8
humy
2012-08-08 14:07
回复 6楼 pangding
打错了是list_size
#9
humy
2012-08-08 14:12
回复 5楼 pangding
是的,谢谢
1