zoukankan      html  css  js  c++  java
  • 返回vector指针案例

    void prog1_static(void)
    {
        int pos = 9;
    
        // elem will hold the element's value
        vector<int> *elem;
        elem = fibon_seq2(pos);
        cout << elem->size() << endl;
    
        for (int in = 0; in < elem->size(); in++)
        {
            cout << elem[0][in] <<" ";
        }
        cout << endl;
    
        pos = 18;
        elem = fibon_seq2(pos);
        cout << elem->size() << endl;
    
        for (int in = 0; in < elem->size(); in++)
        {
            cout << elem[0][in] <<" ";    //error
        }
        cout << endl;
    }
    

    下面的函数返回elems的地址。可以返回静态对象的地址

    通过去读取vector的返回值可以实现减少计算工作量的方法。
    cout << elem[0][in] <<" ";
    这个用法一定要注意,试了很就才发现。
    elem是一个向量指针,这个指针指向某一个向量的,
    因此类似于c语言中一个指针指向二位数组。

    vector<int> *fibon_seq2( int size )
    {
        const int max_size = 1024;
        static vector< int > elems;
    
        if ( size <= 0 || size > max_size )
        {
            cerr << "fibon_seq(): oops: invalid size: "
                 << size << " -- can锟絫 fulfill request.
    ";
            return 0;
        }
    
        // if size is equal to or greater than elems.size(),
        // no calculations are necessary ...
        for ( int ix = elems.size(); ix < size; ++ix )
        {
            if ( ix == 0 || ix == 1 )
            {
                elems.push_back( 1 );
            }
            else
            {
                elems.push_back( elems[ix - 1] + elems[ix - 2] );
            }
        }
        return &elems;
    }
    

      

  • 相关阅读:
    图片点击后直接下载
    输入网址到页面呈现,以及首屏加载
    RESTful
    html语义化标签
    git 初学解决错误
    爬虫
    Scrapy安转遇到问题
    前端补充
    django-ORM
    django-web聊天
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/11221428.html
Copyright © 2011-2022 走看看