由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C++中使用back_inserter为啥可以不用#include 和using std::back_inserter;??
相关主题
一个小程序差点搞死了g++,怎么回事?C++ 菜鸟问一个关于template 的问题。
c++ template question:一个关于关键字typename的问题
请教c++的string vector问题,谢谢! (转载)C++ 程序求助
STL感觉实在太变态了stl container erase in a loop
[菜鸟问题]类模板问题a simple question for C++ class
stl 的 member type 看起来挺头大的私有成员不能用类成员函数修改?
讨论 找单链表倒数m的节点 (转载)C++小程序查错
return Triangular_iterator( _beg_pos );意思关于inserter
相关话题的讨论汇总
话题: inserter话题: include话题: std话题: int话题: using
进入Programming版参与讨论
1 (共1页)
j*****u
发帖数: 186
1
下面程序来自于essential C++ 3.6节,给定一个数组,输出比某个数小的所以元素。
main函数中用了back_inserter,按道理是不是应该include iterator头文件和
using std::back_inserter? 但是为什么把这两句注释掉程序也能跑呢?谢谢。
===================================================================
#include
#include
#include
#include
#include
//#include
using std::vector;
using std::cout;
using std::endl;
using std::less;
//using std::back_inserter;
template ElemeType, typename Comp>
OutputIterator filter(InputIterator first, InputIterator last,
OutputIterator at, const ElemeType &filter_value, Comp pred )
{
while ( (first=find_if(first, last, bind2nd(pred, filter_value))) !=
last )
{
*at++ = *first++;
}
return at;
}
int main()
{
const int elem_size = 8;
int ia[elem_size] = {12, 8 ,43, 0, 6, 21, 3, 7};
vector ivec(ia, ia+elem_size);
int filter_value = 10;

vector ivec2;
filter(ivec.begin(), ivec.end(), back_inserter(ivec2), filter_value,
less() );
for ( vector::iterator It = ivec2.begin(); It != ivec2.end(); It++ )
cout << *It << " ";
cout << endl;
}
j*****u
发帖数: 186
2
下面程序来自于essential C++ 3.6节,给定一个数组,输出比某个数小的所以元素。
main函数中用了back_inserter,按道理是不是应该include iterator头文件和
using std::back_inserter? 但是为什么把这两句注释掉程序也能跑呢?谢谢。
===================================================================
#include
#include
#include
#include
#include
//#include
using std::vector;
using std::cout;
using std::endl;
using std::less;
//using std::back_inserter;
template ElemeType, typename Comp>
OutputIterator filter(InputIterator first, InputIterator last,
OutputIterator at, const ElemeType &filter_value, Comp pred )
{
while ( (first=find_if(first, last, bind2nd(pred, filter_value))) !=
last )
{
*at++ = *first++;
}
return at;
}
int main()
{
const int elem_size = 8;
int ia[elem_size] = {12, 8 ,43, 0, 6, 21, 3, 7};
vector ivec(ia, ia+elem_size);
int filter_value = 10;

vector ivec2;
filter(ivec.begin(), ivec.end(), back_inserter(ivec2), filter_value,
less() );
for ( vector::iterator It = ivec2.begin(); It != ivec2.end(); It++ )
cout << *It << " ";
cout << endl;
}
r****t
发帖数: 10904
3
algorithm 里面最终 include 了 stl_iterator*.h,
Koenig lookup.(mentioned in primer)

【在 j*****u 的大作中提到】
: 下面程序来自于essential C++ 3.6节,给定一个数组,输出比某个数小的所以元素。
: main函数中用了back_inserter,按道理是不是应该include iterator头文件和
: using std::back_inserter? 但是为什么把这两句注释掉程序也能跑呢?谢谢。
: ===================================================================
: #include
: #include
: #include
: #include
: #include
: //#include

1 (共1页)
进入Programming版参与讨论
相关主题
关于inserter[菜鸟问题]类模板问题
deque的pointer和reference是怎么回事?stl 的 member type 看起来挺头大的
c++ question讨论 找单链表倒数m的节点 (转载)
C++里get array size的问题 (转载)return Triangular_iterator( _beg_pos );意思
一个小程序差点搞死了g++,怎么回事?C++ 菜鸟问一个关于template 的问题。
c++ template question:一个关于关键字typename的问题
请教c++的string vector问题,谢谢! (转载)C++ 程序求助
STL感觉实在太变态了stl container erase in a loop
相关话题的讨论汇总
话题: inserter话题: include话题: std话题: int话题: using