📄 test_ycpp.cpp
字号:
typename list_t::const_iterator itr = dli.end();
cout<<&*itr<<endl;
break;
}
case 5:
{
typename list_t::reverse_iterator ritr = dli.rbegin();
cout<<&*( ritr.base() )<<endl;
break;
}
case 6:
{
typename list_t::const_reverse_iterator ritr = dli.rbegin();
cout<<&*( ritr.base() )<<endl;
break;
}
case 7:
{
typename list_t::reverse_iterator ritr = dli.rend();
cout<<&*( ritr.base() )<<endl;
break;
}
case 8:
{
typename list_t::const_reverse_iterator ritr = dli.rend();
cout<<&*( ritr.base() )<<endl;
break;
}
case 9:
{
typename list_t::reference ref = dli.front();
cout<<ref<<endl;
break;
}
case 10:
{
typename list_t::const_reference ref = dli.front();
cout<<ref<<endl;
break;
}
case 11:
{
typename list_t::reference ref = dli.back();
cout<<ref<<endl;
break;
}
case 12:
{
typename list_t::const_reference ref = dli.back();
cout<<ref<<endl;
break;
}
case 13:
cout<<"empty is "<<(dli.empty() ? "true!" : "false!")<<endl;
break;
case 14:
cout<<"size = "<<dli.size()<<endl;
break;
case 15:
cout<<"max_size = "<<dli.max_size()<<endl;
break;
case 16:
{
typename list_t::size_type index = 0;
cout<<"please input index\n"; cin>>index;
typename list_t::reference ref = dli[index];
cout<<"list["<<index<<"] = "<<ref<<endl;
break;
}
case 17:
{
typename list_t::size_type index = 0;
cout<<"please input index\n"; cin>>index;
typename list_t::const_reference ref = dli[index];
cout<<"list["<<index<<"] = "<<ref<<endl;
break;
}
case 18:
{
typename list_t::size_type index = 0;
cout<<"please input index\n"; cin>>index;
try
{
typename list_t::reference ref = dli.at( index );
cout<<"list["<<index<<"] = "<<ref<<endl;
}
catch( std::out_of_range& e )
{
cout<<e.what()<<endl;
}
break;
}
case 19:
{
typename list_t::size_type index = 0;
cout<<"please input index\n"; cin>>index;
try
{
typename list_t::const_reference ref = dli.at( index );
cout<<"list["<<index<<"] = "<<ref<<endl;
}
catch( std::out_of_range& e )
{
cout<<e.what()<<endl;
}
break;
}
case 20:
{
list_t dli1;
dli.swap( dli1 );
break;
}
case 21:
dli.clear();
break;
case 22:
dli.pop_back();
break;
case 23:
dli.pop_front();
break;
case 24:
{
T in;
cout<<"please input a value\n"; cin>>in;
dli.push_back( in );
break;
}
case 25:
{
T in;
cout<<"please input a value\n"; cin>>in;
dli.push_front( in );
break;
}
case 26:
{
T in;
typename list_t::size_type n = 0;
cout<<"please input new size\n"; cin>>n;
cout<<"please input a value\n"; cin>>in;
dli.resize( n, in );
break;
}
case 27:
{
typename list_t::size_type n = 0;
cout<<"please input index\n"; cin>>n;
dli.erase( dli.begin() + n );
break;
}
case 28:
{
typename list_t::size_type first = 0, last = 0;
cout<<"please input first index\n"; cin>>first;
cout<<"please input last index\n"; cin>>last;
dli.erase( dli.begin() + first, dli.begin() + last );
break;
}
case 29:
{
T in;
typename list_t::size_type n = 0;
cout<<"please input index\n"; cin>>n;
cout<<"please input a value\n"; cin>>in;
dli.insert( dli.begin() + n, in );
break;
}
case 30:
{
T in;
typename list_t::size_type i = 0, n = 0;
cout<<"please input index\n"; cin>>i;
cout<<"please input count\n"; cin>>n;
cout<<"please input a value\n"; cin>>in;
dli.insert( dli.begin() + i, n, in );
break;
}
case 31:
{
size_t i = 0, n = 0;
T in;
youngcpp::vector<T> vec1;
cout<<"please input index\n"; cin>>i;
cout<<"please input count\n"; cin>>n;
for( size_t x = 0; x < n; ++x )
{
cout<<"please input value\n"; cin>>in;
vec1.push_back( in );
}
dli.insert( dli.begin() + i, vec1.begin(), vec1.end() );
break;
}
case 32:
{
T in;
typename list_t::size_type n = 0;
cout<<"please input count\n"; cin>>n;
cout<<"please input a value\n"; cin>>in;
dli.assign( n, in );
break;
}
case 33:
{
size_t n = 0;
T in;
youngcpp::vector<T> vec1;
cout<<"please input count\n"; cin>>n;
for( size_t x = 0; x < n; ++x )
{
cout<<"please input value\n"; cin>>in;
vec1.push_back( in );
}
dli.assign( vec1.begin(), vec1.end() );
break;
}
case 34:
dli.reverse();
break;
case 35:
{
char c; cout<<"use function object (y/n)?\n"; cin>>c;
if( 'y' == c )
dli.remove_if( rmv<T>() );
else
{
T in; cout<<"please input value\n"; cin>>in;
dli.remove( in );
}
break;
}
case 36:
{
char c; cout<<"use function object (y/n)?\n"; cin>>c;
'y' == c ? dli.unique( std::not_equal_to<T>() ) : dli.unique();
break;
}
case 37:
break;
case 38:
{
char c; cout<<"use function object (y/n)?\n"; cin>>c;
'y' == c ? dli.sort( std::greater<T>() ) : dli.sort();
break;
}
case 39:
std::copy( dli.begin(), dli.end(), ostream_iterator<T, char>(cout, "; ") );
break;
default:
break;
}
cout<<endl<<"press any key to continue"<<endl;
youngc::pool_print();
cin.get();
cin.get();
};
}
template< typename T >
void test_slist()
{
typedef youngcpp::slist< T, youngcpp::pool_allocator<T> > slist_t;
int input = 0;
slist_t sli;
while( 1 )
{
cout<<"Test slist:\n"
<<" 1: test iterator begin\n"
<<" 2: test const_iterator begin\n"
<<" 3: test reference front\n"
<<" 4: test const_reference front\n"
<<" 5: test reference back\n"
<<" 6: test const_reference back\n"
<<" 7: test empty\n"
<<" 8: test size\n"
<<" 9: test max_size\n"
<<" 10: test reference operator[]\n"
<<" 11: test const_reference operator[]\n"
<<" 12: test reference at\n"
<<" 13: test const_reference at\n"
<<" 14: test swap\n"
<<" 15: test clear\n"
<<" 16: test pop_front\n"
<<" 17: test push_front\n"
<<" 18: test pop_back\n"
<<" 19: test push_back\n"
<<" 20: test resize\n"
<<" 21: test erase position\n"
<<" 22: test erase range\n"
<<" 23: test insert position\n"
<<" 24: test insert position n\n"
<<" 25: test insert range\n"
<<" 26: test assign value\n"
<<" 27: test assign range\n"
<<" 28: test reverse\n"
<<" 29: test remove\n"
<<" 30: test unique\n"
<<" 31: test merge\n"
<<" 32: test sort\n"
<<" 33: print slist\n"
<<" 0: exit\n\n\n";
cin>>input;
switch( input )
{
case 0:
return;
case 1:
{
typename slist_t::iterator itr = sli.begin();
cout<<&*itr<<endl;
break;
}
case 2:
{
typename slist_t::const_iterator itr = sli.begin();
cout<<&*itr<<endl;
break;
}
case 3:
{
typename slist_t::reference ref = sli.front();
cout<<ref<<endl;
break;
}
case 4:
{
typename slist_t::const_reference ref = sli.front();
cout<<ref<<endl;
break;
}
case 5:
{
typename slist_t::reference ref = sli.back();
cout<<ref<<endl;
break;
}
case 6:
{
typename slist_t::const_reference ref = sli.back();
cout<<ref<<endl;
break;
}
case 7:
cout<<"empty is "<<(sli.empty() ? "true!" : "false!")<<endl;
break;
case 8:
cout<<"size = "<<sli.size()<<endl;
break;
case 9:
cout<<"max_size = "<<sli.max_size()<<endl;
break;
case 10:
{
typename slist_t::size_type index = 0;
cout<<"please input index\n"; cin>>index;
typename slist_t::reference ref = sli[index];
cout<<"slist["<<index<<"] = "<<ref<<endl;
break;
}
case 11:
{
typename slist_t::size_type index = 0;
cout<<"please input index\n"; cin>>index;
typename slist_t::const_reference ref = sli[index];
cout<<"slist["<<index<<"] = "<<ref<<endl;
break;
}
case 12:
{
typename slist_t::size_type index = 0;
cout<<"please input index\n"; cin>>index;
try
{
typename slist_t::reference ref = sli.at( index );
cout<<"slist["<<index<<"] = "<<ref<<endl;
}
catch( std::out_of_range& e )
{
cout<<e.what()<<endl;
}
break;
}
case 13:
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -