您的位置:首页 > 运维架构

STL_Algorithm3: remove, remove_if, remove_copy, remove_copy_if

2010-12-23 23:37 411 查看
// Remove.cpp : Defines the entry point for the console application.

//

#include <iostream>

#include <algorithm>

#include <vector>

#include <iterator>

using std::cout;

using std::endl;

bool greater9( int );

int main()

{

const int SIZE = 10;

int a[SIZE] = { 10, 2, 10, 4, 16, 6, 14, 8, 12, 10 };

std::ostream_iterator< int > outputIt( cout, " " );

std::vector< int > v( a, a + SIZE );

std::vector< int >::iterator newLastElement;

cout<<"Vector v before removing all 10s: /n ";

std::copy( v.begin(), v.end(), outputIt );

newLastElement = std::remove( v.begin(), v.end(), 10 );

cout<<"/nVector v after removing all 10s: /n ";

std::copy( v.begin(), v.end(), outputIt );

std::vector< int > v2( a, a + SIZE );

std::vector< int > c( SIZE, 0 );

cout<<"/n/nVector v2 before removing all 10s and copying:/n";

std::copy( v2.begin(), v2.end(), outputIt );

std::remove_copy( v2.begin(), v2.end(), c.begin(), 10 );

cout<<"/nVector c after remvoing all 10s from v2:/n ";

std::copy( c.begin(), c.end(), outputIt );

std::vector< int > v3( a, a + SIZE );

cout<<"/n/nVector v3 before removing all elements"

<<"/nfreater than 9:/n";

std::copy( v3.begin(), v3.end(), outputIt );

newLastElement = std::remove_if( v3.begin(), v3.end(), greater9 );

cout<<"/nVector v3 after removing all elements"

<<"/ngreater than 9:/n";

std::copy( v3.begin(), newLastElement, outputIt );

std::vector< int > v4( a, a + SIZE );

std::vector< int > c2( SIZE, 0 );

cout<<"/n/nVector v4 before removing all elements"

<< "/ngreater than 9 and copying:/n";

std::copy( v4.begin(), v4.end(), outputIt );

std::remove_copy_if( v4.begin(), v4.end(), c2.begin(), greater9 );

cout<<"/nVector c2 after removing all elements"

<< "/ngreater than 9 from v4:/n";

std::copy( c2.begin(), c2.end(), outputIt );

cout<<endl;

return 0;

}

bool greater9( int x )

{

return x > 9;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: