国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > vectorappend用法介紹

vectorappend用法介紹

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-24 19:11:45 1700824305

一、vector簡(jiǎn)介

vector是C++ STL中的一個(gè)非常重要的容器,它能夠動(dòng)態(tài)的管理內(nèi)存,同時(shí)提供了方便的元素存取、插入、刪除等操作。vector是一個(gè)動(dòng)態(tài)數(shù)組,其大小可以根據(jù)實(shí)際情況自動(dòng)調(diào)整,可以在執(zhí)行時(shí)動(dòng)態(tài)添加或刪除元素。

vector的定義:


    
        #include 
        using namespace std;
        vector vec;
    

這段代碼定義了一個(gè)名為vec的int型vector,使用using namespace std;可省略引用vector中的std命名空間。創(chuàng)建vector后,可以使用push_back()函數(shù)添加元素,使用size()函數(shù)獲取元素個(gè)數(shù),使用[]運(yùn)算符或者at()函數(shù)獲取元素。

二、vectorappend函數(shù)作用

vectorappend函數(shù)用于向vector中添加元素,其定義如下:


    
        void vector::push_back(const value_type& val);
    

其中value_type是vector模板參數(shù)中的類型,而val則是要添加的元素,該元素的類型與value_type相同。

vector的底層內(nèi)存結(jié)構(gòu)采用分段連續(xù)空間存儲(chǔ),每當(dāng)添加元素時(shí),如果當(dāng)前vector的內(nèi)存空間不足,就會(huì)重新分配一段更大的連續(xù)空間,并將原來(lái)的元素復(fù)制到新的內(nèi)存空間中。這也就是vector高效運(yùn)行的原因之一。

三、使用vectorappend實(shí)現(xiàn)隊(duì)列的入隊(duì)操作

在隊(duì)列中,添加元素需要執(zhí)行入隊(duì)操作,下面給出使用vectorappend函數(shù)實(shí)現(xiàn)入隊(duì)操作的完整代碼示例:


    
        #include 
        #include 
        using namespace std;
        int main()
        {
            vector que; //定義隊(duì)列
            que.push_back(1);  //元素1入隊(duì)
            que.push_back(2);  //元素2入隊(duì)
            que.push_back(3);  //元素3入隊(duì)
            que.push_back(4);  //元素4入隊(duì)
            for(auto i = que.begin(); i != que.end(); ++i) //輸出隊(duì)列
                cout << *i << " ";
            return 0;
        }
    

在上述代碼中,通過(guò)vectorappend函數(shù)將元素1、2、3、4依次入隊(duì),并使用迭代器遍歷輸出隊(duì)列中的所有元素。

四、使用vectorappend實(shí)現(xiàn)動(dòng)態(tài)增長(zhǎng)的數(shù)組

在C/C++中,動(dòng)態(tài)數(shù)組是一種便于管理和使用的數(shù)據(jù)結(jié)構(gòu)。使用下標(biāo)訪問(wèn)數(shù)組元素時(shí),需要保證訪問(wèn)下標(biāo)不越界。當(dāng)數(shù)組元素個(gè)數(shù)超過(guò)數(shù)組容量時(shí),需要將元素拷貝到更大的內(nèi)存空間中。vector就是一種可以動(dòng)態(tài)增長(zhǎng)的數(shù)組。

下面給出使用vectorappend函數(shù)實(shí)現(xiàn)動(dòng)態(tài)增長(zhǎng)的數(shù)組的完整代碼示例:


    
        #include 
        #include 
        using namespace std;
        int main()
        {
            vector arr; //定義動(dòng)態(tài)數(shù)組
            for(int i = 0; i < 10; i++) //添加10個(gè)元素
                arr.push_back(i);
            for(auto i = arr.begin(); i != arr.end(); ++i) //輸出動(dòng)態(tài)數(shù)組
                cout << *i << " ";
            return 0;
        }
    

上述代碼使用vectorappend函數(shù)向動(dòng)態(tài)數(shù)組中添加了10個(gè)元素,并使用迭代器遍歷輸出所有元素。

五、使用vectorappend實(shí)現(xiàn)尾插法構(gòu)建鏈表

鏈表是一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),通過(guò)指針連接多個(gè)節(jié)點(diǎn),具有高效的插入、刪除操作。使用vectorappend函數(shù)可以實(shí)現(xiàn)尾插法構(gòu)建單鏈表,下面給出實(shí)現(xiàn)代碼:


    
        #include 
        #include 
        using namespace std;
        struct ListNode{
            int val;
            ListNode* next;
            ListNode(int x): val(x), next(nullptr){};
        };
        int main()
        {
            vector nums = {1, 2, 3, 4, 5}; //定義元素序列
            ListNode* head = new ListNode(-1); //定義頭節(jié)點(diǎn)
            ListNode* tail = head; //定義尾指針
            for(auto n : nums)
            {
                tail->next = new ListNode(n); //尾插法插入新節(jié)點(diǎn)
                tail = tail->next;
            }
            ListNode* p = head->next; //指向第一個(gè)節(jié)點(diǎn)
            while(p != nullptr) //遍歷鏈表
            {
                cout << p->val << " ";
                p = p->next;
            }
            return 0;
        }
    

上述代碼首先定義了一個(gè)元素序列,再定義了頭節(jié)點(diǎn)和尾指針。使用尾插法向鏈表中添加所有元素,最后使用指針遍歷輸出鏈表中所有元素。

六、總結(jié)

vectorappend函數(shù)是vector容器的重要成員之一,它可以將元素動(dòng)態(tài)的添加到vector中,從而實(shí)現(xiàn)數(shù)組、隊(duì)列、鏈表的各種操作。vector的動(dòng)態(tài)增長(zhǎng)內(nèi)存結(jié)構(gòu)保證了其高效的運(yùn)行。掌握vectorappend函數(shù)的使用可以對(duì)C++ STL的深入理解提供幫助。

tags: vectorappend
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT