listtest8.cpp
来自「VC.net 的一些有用的技巧」· C++ 代码 · 共 74 行
CPP
74 行
//ListTest8.cpp
#include <list>
#include <algorithm>
#include <iostream>
using namespace std;
typedef list<int> LISTINT;
// 判断第二个元素是否是第一个元素的两倍
bool twice (int elem1, int elem2 )
{
return 2 * elem1 == elem2;
}
int main( )
{
LISTINT L1, L2, L3;
LISTINT::iterator L1_Iter, L1_inIter, L2_Iter, L3_Iter;
int i;
for ( i = 4 ; i <= 5 ; i++ )
{
L1.push_back( 5 * i );
}
int ii;
for ( ii = 0 ; ii <= 5 ; ii++ )
{
L2.push_back( 5 * ii );
}
for ( ii = 0 ; ii <= 5 ; ii++ )
{
L2.push_back( 5 * ii );
}
int iii;
for ( iii = 2 ; iii <= 4 ; iii++ )
{
L3.push_back( 10 * iii );
}
cout << "List L1 = ( " ;
for ( L1_Iter = L1.begin( ) ; L1_Iter!= L1.end( ) ; L1_Iter++ )
cout << *L1_Iter << " ";
cout << ")" << endl;
cout << "List L2 = ( " ;
for ( L2_Iter = L2.begin( ) ; L2_Iter!= L2.end( ) ; L2_Iter++ )
cout << *L2_Iter << " ";
cout << ")" << endl;
cout << "List L3 = ( " ;
for ( L3_Iter = L3.begin( ) ; L3_Iter != L3.end( ) ; L3_Iter++ )
cout << *L3_Iter << " ";
cout << ")" << endl;
// 搜索L2查找第一个与L1相等的部分
LISTINT::iterator result1;
result1 = search (L2.begin( ), L2.end( ), L1.begin( ), L1.end( ) );
if ( result1 == L2.end( ) )
cout << "L2中没有与L1相等的部分." << endl;
else
cout << "L2中至少有一处与L1相等."<< endl;
// 搜索L2查找两倍的值等于L3的部分
LISTINT::iterator result2;
result2 = search (L2.begin( ), L2.end( ), L3.begin( ), L3.end( ), twice );
if ( result2 == L2.end( ) )
cout << "L2中任一个序列值的两倍都不等于L3."<< endl;
else
cout << "L2中有一个序列值的两倍等于L3."<< endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?