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

📄 test_ycpp.cpp

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