注册 登录
编程论坛 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
humy2012-08-07 14:35
我说list-size
#3
humy2012-08-07 14:45
const list<int>::size_type
list<string>::size_type一样?
#4
peach54602012-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
pangding2012-08-07 22:15
你是想问那两个 size_type 一样吗?是一样的。

大部分容器的第一个模版都不影响 size_type。你去看头文件就知道了,它的定义是第二个模版参数的 size_type。
这些容器的第二个模版是用来指定一个内存分配器的。一般就用默认的,很少见人会提供其它的分配器。默认分配器的 size_type 是 size_t 的 typedef。所以一般来说各个容器的都一样。
#6
pangding2012-08-07 22:16
但我没看懂,你 list-size 是什么意思?是减法吗?
#7
peach54602012-08-08 08:50
以下是引用pangding在2012-8-7 22:16:28的发言:

但我没看懂,你 list-size 是什么意思?是减法吗?
他的list-size是一个容器的大小
然后它使用了类似list<cstring>(uint, cstring)的构造函数声明了一个变量

偶素这么认为滴
所以我找了一个list实现里面的构造函数原型贴了出来
#8
humy2012-08-08 14:07
回复 6楼 pangding
打错了是list_size
#9
humy2012-08-08 14:12
回复 5楼 pangding
是的,谢谢
1