⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_ycpp.cpp

📁 一个类STL的多平台可移植的算法容器库,主要用于嵌入式系统编程时的内存管理等方面
💻 CPP
📖 第 1 页 / 共 5 页
字号:
            <<" 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 + -