bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Boost庫中scoped_array-創(chuàng)新互聯(lián)

1、scoped_array

10年積累的成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有民豐免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

 是專門對數(shù)組空間進行管理的。包裝了new[]在堆上分配的動態(tài)數(shù)組;

 scoped_array彌補了標準庫中沒有指向數(shù)組的智能指針的缺憾。

2、此類特點如下:

 (1)、構(gòu)造函數(shù)接受的指針p必須是new[]的結(jié)果,不能是new;

 (2)、沒有*、->操作符的重載(庫中不提供這些的重載,但是我們可以自己寫),因為scoped_array所持有的不是一個普通的指針;

 (3)、析構(gòu)則必須用delete [];

 (4)、提供operator[]的重載,可以像普通數(shù)組一樣進行下標訪問元素;

 (5)、沒有begin()、end()等類似容器的迭代器操作函數(shù);

 scoped_array與scoped_ptr有相同的設(shè)計思想,也是局部智能指針,不能拷貝和賦值;

3、怎么使用scoped_array

#include<iostream>
#include<boost/smart_ptr.hpp> //內(nèi)部實現(xiàn)好的,直接調(diào)用系統(tǒng)的。
using namespace std;
using namespace boost;  //這個命名空間必須要有。

int main(void){
    int *p = new int[10];  //申請數(shù)組空間
    scoped_array<int> ps(p); //交與智能指針管理

    for(int i = 0; i < 10; i++){
        ps[i] = i+1;  //可以進行下標操作
    }
    for(i = 0; i < 10; i++){
        cout<<ps[i]<<" ";
    }
    cout<<endl;
}
//拷貝構(gòu)造和賦值都不可以。

4、scoped_array源碼的實現(xiàn)

#include<iostream>
using namespace std;

template<class T>
class scoped_array{
public:
    explicit scoped_array(T *p = 0) : px(p){} //預防隱式調(diào)用
    ~scoped_array(){
        delete []px;
    }
public:
    typedef scoped_array<T> this_type;
    void reset(T *p = 0){ //重置方法
        this_type.swap(*this);//無名臨時對象
    }
    void swap(scoped_array &b){
        T *tmp = b.px;
        b.px = px;
        px = tmp;
    }
    T* get()const{
        return px;
    }
    T& operator[](int i)const{ //下標越界沒有檢測
        //return *(px+i);
        return px[i];
    }
    T& operator*()const{
        return px[0];
    }
    T* operator+(int i)const{
        return px+i;
    }

private:
    T *px;
    scoped_array(scoped_array const &);//放到私有中,外界無法調(diào)用
    scoped_array& operator=(scoped_array const &);
    
    void operator==(scoped_array const &)const;
    void operator!=(scoped_array const &)const;
};

int main(void){
    int *p = new int[10];
    scoped_array<int> ps(p);

    *ps = 2;

    for(int i = 0; i < 10; i++){
        ps[i] = i+1;
    }
    *(ps + 3) = 100; //利用 + ,*的運算符的重載即可以實現(xiàn)。
    for(i = 0; i < 10; i++){
        cout<<ps[i]<<" ";
    }
    cout<<endl;
}

庫中沒有提供*和+的重載。

scoped_array缺點:

 不能動態(tài)增長,沒有迭代器支持,不能搭配STL算法,是純粹的裸接口,不推薦使用。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章名稱:Boost庫中scoped_array-創(chuàng)新互聯(lián)
分享鏈接:http://vcdvsql.cn/article34/dgojpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站內(nèi)鏈App開發(fā)、網(wǎng)站營銷、關(guān)鍵詞優(yōu)化小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)