社区
C++ 语言
帖子详情
istream_iterator是个类,为什么可以直接当做vector构造函数的参数使用?
alvinliu1976
2007-04-04 12:00:59
如题。按理说vector构造函数的参数是个const_iterator,是个类中的定义变量类型,不是个类类型啊?为什么istream_iterator可以直接做实参,有隐式类型转换吗?istream_iterator中也好像没有重载转换运算符啊?
...全文
238
6
打赏
收藏
istream_iterator是个类,为什么可以直接当做vector构造函数的参数使用?
如题。按理说vector构造函数的参数是个const_iterator,是个类中的定义变量类型,不是个类类型啊?为什么istream_iterator可以直接做实参,有隐式类型转换吗?istream_iterator中也好像没有重载转换运算符啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
珍惜生命远离CPP
2007-04-04
打赏
举报
回复
istream_iterator这个是迭代器,
匹配的是
template<class InputIterator>
vector(
InputIterator _First,
InputIterator _Last
);
这个
taodm
2007-04-04
打赏
举报
回复
这么大大的template<class InputIterator>没看见么。
模板还没学过?
alvinliu1976
2007-04-04
打赏
举报
回复
istream_iterator<int> infine(cin);
istream_iterator<int> eos;
vector<int> temparr(infine,eos);
上述代码在VC6.0下给出类型不能匹配的错误,在VC2005下没问题。我的问题是:vector的构造函数这里的参数只能是int的指针;而代码中直接把istream_iterator<int> 这个类对象给了形参。这个类对象只是istream_iterator<int>的一个对象,不是int的指针啊?除非进行重载转换运算符。但是我在VC2005 MSDN下找不到说明。
alvinliu1976
2007-04-04
打赏
举报
回复
所有构造函数的都看了啊,template<class InputIterator>
vector(
InputIterator _First,
InputIterator _Last
);
template<class InputIterator>
vector(
InputIterator _First,
InputIterator _Last,
const Allocator& _Al
);
只可能匹配这两个啊
taodm
2007-04-04
打赏
举报
回复
你知道vector有多少个构造函数吗?
alvinliu1976
2007-04-04
打赏
举报
回复
template<class _Iter>
vector(_Iter _First, _Iter _Last)
: _Mybase()
{// construct from [_First, _Last)
_Construct(_First, _Last, _Iter_cat(_First));
}
刚才终于找到答案了,这是匹配的是这个构造函数,注意这个构造函数是个函数模版,真是厉害,类模版里头又套一个函数模版,我都晕了。还有更晕的,这个函数模版中的_Construct函数也不是一个实在函数,也是类模版中的函数模版。也就是构造函数的模版中调用了一个模版函数。请大家看看是不是这样的。注:以上是在VC2005平台下,VC6.0不行。
STL 源码剖析(侯捷先生译著)
8.3.3 stream
iterator
s (
istream
_
iterator
, ostream_
iterator
) 442 8.4 function adapters 448 8.4.1 对传回值进行逻辑否定:not1, not2 450 8.4.2 对
参数
进行系结(绑定):bind1st, bind2nd 451 8.4.3 用于...
STL源码剖析.pdg
8.3.3 stream
iterator
s (
istream
_
iterator
, ostream_
iterator
) 442 8.4 function adapters 448 8.4.1 对传回值进行逻辑否定:not1, not2 450 8.4.2 对
参数
进行系结(绑定):bind1st, bind2nd 451 8.4.3 用于...
C++中
istream
_
iterator
和ostream_
iterator
的用法
今天在看《STL源码剖析》的时候,看到了配接器中的ostream
iterator
,其中包含
istream
_
iterator
以及ostream_
iterator
以及更多,感觉这两个都十分重要,所以在这里介绍一下
istream
_
iterator
源码: template &...
istream
_
iterator
和ostream_
iterator
istream
_
iterator
及ostream_
iterator
使用
实例 并利用ostream_
iterator
输出
vector
输入: cert ecjtu 输出: cert ecjtu */
vector
vecStr;
istream
_
iterator
infile(cin);
istream
_
iterator
eoffile; ostream_...
istream
_
iterator
、ostream_
iterator
使用
初探
标准程序库定义有供输入及输出用的iostream
iterator
类
,称为
istream
_
iterator
和ostream_
iterator
,分别支持单一型别的元素读取和写入。
使用
这两个
iterator
classes之前,先得含入
iterator
头文件: #include 现在让...
C++ 语言
64,662
社区成员
250,487
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章