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