#include


 

雙端隊列deque比向量vector更有優勢

 

vector是動態數組,在堆上

vector比array更常用

不需要變長,容量較小,用array

需要變長,容量較大,用vector

 

1 at()

取出下標

2 c_str()

執行

3 clear()

清空

4 erase()

根據迭代器的位置,刪除元素

erase(myvector.begin() + 3)

5 fill

填充

6 find

7 find_if

8 find_if_not

9 insert()

插入元素

insert(myvector.begin() + 3, 998);//在第4個位置插入

10 pop_back()

刪除最后一個元素

11 push_back()

push_back,算法語言里面的一個函數名,如c++中的vector頭文件里面就有這個push_back函數,在vector類中作用為在vector尾部加入一個數據。

12 size()

求數組元素個數

13 sort

排序

14 swap()

交換

 

1 at()

取出下標

4 erase()

根據迭代器的位置,刪除元素

erase(myvector.begin() + 3)

5 insert()

插入元素

insert(myvector.begin() + 3, 998);//在第4個位置插入

6 pop_back()

刪除最后一個元素

7 push_back()

push_back,算法語言里面的一個函數名,如c++中的vector頭文件里面就有這個push_back函數,在vector類中作用為在vector尾部加入一個數據。

8 size()

求數組元素個數

 

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 void main()
 6 {
 7     std::vector<int>myvector;//創建一個數組,數組元素是int類型
 8 
 9     myvector.push_back(1);//尾部加入一個數據
10     myvector.push_back(11);
11     myvector.push_back(111);
12     myvector.push_back(1111);
13     myvector.push_back(2);
14 
15     myvector.pop_back();//刪除尾部元素
16 
17     for (int i = 0; i < myvector.size(); i++)//遍歷
18     {
19         //std::cout << myvector[i] << std::endl;//上下一樣
20         std::cout << myvector.at(i) << std::endl;//上下一樣,at()可以取出下標
21     }
22     std::cout << std::endl;
23 
24     //根據迭代器的位置刪除
25     myvector.erase(myvector.begin() + 3);//刪除第四個元素。刪除第3個元素(從0開始計算的話)
26 
27     for (int i = 0; i < myvector.size(); i++)//遍歷
28     {
29         if (1)
30         {
31             //可以增加查詢,修改功能
32         }
33         std::cout << myvector[i] << std::endl;
34     }
35     std::cout << std::endl;
36 
37     myvector.insert(myvector.begin() + 2, 998);//在第三個位置前插入,新數據變成第三。在第2個位置前插入,新數據變成第2(從0開始計算的話)
38 
39     for (int i = 0; i < myvector.size(); i++)//遍歷
40     {
41         std::cout << myvector[i] << std::endl;
42     }
43     std::cout << std::endl;
44 
45     system("pause");
46 }

 

2 c_str()

執行

3 clear()

清空

6 pop_back()

刪除最后一個元素

7 push_back()

push_back,算法語言里面的一個函數名,如c++中的vector頭文件里面就有這個push_back函數,在vector類中作用為在vector尾部加入一個數據。

8 size()

求數組元素個數

 

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 void main()
 6 {
 7     std::vector<std::string>string1;//定義一個字符串數組
 8 
 9     string1.clear();//clear清空
10 
11     string1.push_back("notepad");//push_back尾部加入
12     string1.push_back("calc");
13     string1.push_back("mspaint");
14     string1.pop_back();//pop_back刪除尾部元素
15 
16     for (int i = 0; i < string1.size(); i++)//size()長度
17     {
18         system(string1[i].c_str());//c_str執行,刪除了最后一個,因此將會執行兩個
19     }
20 
21     system("pause");
22 }

 

//正向迭代器iterator,begin()返回一個迭代器,它指向容器c的第一個元素,end()返回一個迭代器,它指向容器c的最后一個元素的下一個位置

//反向迭代器reverse_iterator,rbegin()返回一個逆序迭代器,它指向容器c的最后一個元素,rend()返回一個逆序迭代器,它指向容器c的第一個元素前面的位置

 

image

 

反向迭代器是一種反向遍歷容器的迭代器。也就是,從最后一個元素到第一個元素遍歷容器。反向迭代器將自增(和自減)的含義反過來了:對於反向迭代 器,++ 運算將訪問前一個元素,而 -- 運算則訪問下一個元素。

 

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 void main()
 6 {
 7     std::vector<std::string>string1;//創建一個字符串數組
 8 
 9     string1.clear();//清空
10 
11     string1.push_back("notepad");//尾部加入
12     string1.push_back("calc");
13     string1.push_back("mspaint");
14 
15     //正向迭代器iterator,begin()返回一個迭代器,它指向容器c的第一個元素,end()返回一個迭代器,它指向容器c的最后一個元素的下一個位置
16     std::vector<std::string>::iterator ibegin, iend;//創建兩個迭代器指針
17     ibegin = string1.begin();//初始化迭代器指針,數據起始點
18     iend = string1.end();//初始化迭代器指針,結束
19 
20     for (; ibegin != iend; ibegin++)//從頭到尾
21     {
22         std::string tempstr = *ibegin;//創建中間臨時變量,獲取指針指向的數據
23         system(tempstr.c_str());//執行
24     }
25 
26     //反向迭代器reverse_iterator,rbegin()返回一個逆序迭代器,它指向容器c的最后一個元素,rend()返回一個逆序迭代器,它指向容器c的第一個元素前面的位置
27     std::vector<std::string>::reverse_iterator rbegin = string1.rbegin();//創建迭代器指針,數據起始點
28     std::vector<std::string>::reverse_iterator rend = string1.rend();//創建迭代器指針,結束
29 
30     while (rbegin != rend)//從尾到頭
31     {
32         std::string tempstr = *rbegin;//獲取指針指向的數據
33         system(tempstr.c_str());//執行
34         rbegin++;//指針移動
35     }
36 
37     system("pause");
38 }

 

7 push_back()

push_back,算法語言里面的一個函數名,如c++中的vector頭文件里面就有這個push_back函數,在vector類中作用為在vector尾部加入一個數據。

8 size()

求數組元素個數

 

//創建一個數組變量,元素是數組

vector可用於管理不規則的樹狀結構

國家-省-市縣

 

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 void main()
 6 {
 7     std::vector<int>myvector1;//創建一個數組變量,元素是int類型
 8     myvector1.push_back(12);
 9     myvector1.push_back(13);
10     myvector1.push_back(14);
11 
12     std::vector<int>myvector2;//創建一個數組變量,元素是int類型
13     myvector2.push_back(22);
14 
15     std::vector<int>myvector3;//創建一個數組變量,元素是int類型
16     myvector3.push_back(32);
17     myvector3.push_back(37);
18 
19     std::vector<std::vector<int>>allvector;//創建一個數組變量,元素是數組
20     allvector.push_back(myvector1);
21     allvector.push_back(myvector2);
22     allvector.push_back(myvector3);
23 
24     for (int i = 0; i < allvector.size(); i++)//遍歷
25     {
26         for (int j = 0; j < allvector[i].size(); j++)
27         {
28             std::cout << " " << allvector[i][j];
29         }
30         std::cout << std::endl;
31     }
32 
33     system("pause");
34 }

 

fill

 

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 
 5 template <class T>
 6 class show
 7 { 8 public: 9 void operator()(T &t) 10  { 11 std::cout << t << " "; 12  } 13 }; 14 15 void main() 16 { 17 std::vector<int>myv; 18 19 myv.push_back(7); 20 myv.push_back(8); 21 myv.push_back(9); 22 myv.push_back(4); 23 myv.push_back(5); 24 myv.push_back(6); 25 26 fill(myv.begin() + 2, myv.end(), 10);//從下標2開始到尾部,用10填充 27 28 for_each(myv.begin(), myv.end(), show<int>()); 29 }

 

find

 

 1 #include <iostream>
 2 #include <vector>
 3 
 4 void main()
 5 {
 6     std::vector<int>myv;
 7 
 8     myv.push_back(1);
 9     myv.push_back(2);
10     myv.push_back(3);
11 
12     auto i = find(myv.begin(), myv.end(), 22);
13 
14     if (i == myv.end())
15     {
16         std::cout << "not found" << std::endl;
17     }
18     else
19     {
20         std::cout << *i << std::endl;
21     }
22 }

 

sort

全部元素排序

 

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 
 5 template <class T>
 6 class show
 7 {
 8 public:
 9     void operator()(T &t)
10     {
11         std::cout << t << " ";
12     }
13 };
14 
15 void main()
16 {
17     std::vector<int>myv;
18 
19     myv.push_back(7);
20     myv.push_back(8);
21     myv.push_back(9);
22     myv.push_back(4);
23     myv.push_back(5);
24     myv.push_back(6);
25 
26     sort(myv.begin(), myv.end());//排序
27     
28     for_each(myv.begin(), myv.end(), show<int>());
29 }

 

sort

部分元素排序

 

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 
 5 template <class T>
 6 struct show
 7 {
 8 public:
 9     void operator()(T &t)
10     {
11         std::cout << t << " ";
12     }
13 };
14 
15 void main()
16 {
17     std::vector<char>myv;
18 
19     myv.push_back('B');
20     myv.push_back('A');
21     myv.push_back('C');
22     myv.push_back('Y');
23     myv.push_back('Z');
24     myv.push_back('X');
25 
26     for_each(myv.begin(), myv.end(), show<char>());
27     std::cout << std::endl;
28 
29     sort(myv.begin(), myv.begin() + 3);
30 
31     for_each(myv.begin(), myv.end(), show<char>());
32     std::cout << std::endl;
33 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM