#include #include #include using namespace std;
class solution
m[count].push_back(i);
}for(int i=0;i<=num;i++) ;
vector
a(n, n+5) ; //
將陣列n的前5個元素作為向量a的初值
vector a(&n[1], &n[4]) ; //
將n[1] - n[4]範圍內的元素作為向量a的初值
三、元素的輸入及訪問
元素的輸入和訪問可以像操作普通的陣列那樣, 用cin>>進行輸入,cout這樣進行輸出:
示例:
1 #include2 #include3在元素的輸出上, 還可以使用遍歷器(又稱迭代器)進行輸出控制。在vectorb(a.begin(), a.begin()+3) ;這種宣告形式中,(a.begin()、a.begin()+3)表示向量起始元素位置到起始元素+3之間的元素位置。(a.begin(), a.end())則表示起始元素和最後乙個元素之外的元素位置。4using
namespace std ;56
int main()
7
向量元素的位置便成為遍歷器, 同時, 向量元素的位置也是一種資料型別, 在向量中遍歷器的型別為:vector::iterator。 遍歷器不但表示元素位置, 還可以再容器中前後移動。
在上例中講元素全部輸出部分的**就可以改寫為:
//*t為指標的間接訪問形式, 意思是訪問t所指向的元素值。全部輸出
vector::iterator t ;
for(t=a.begin(); t!=a.end(); t++)
cout
<
" ;
四、向量的基本操作
1>.a.size()//五、二維向量獲取向量中的元素個數
2>.a.empty()//
判斷向量是否為空
3>.a.clear()//
清空向量中的元素
4>.複製a
= b ;//
將b向量複製到a向量中
5>.比較保持==、
!=、>、
>=、<、<=的慣有含義 ;
如:a
== b ;//
a向量與b向量比較, 相等則返回1
6>.插入 -insert①、a.insert(a.begin(),
1000);//
將1000插入到向量a的起始位置前
②、a.insert(a.begin(),3,
1000) ;//
將1000分別插入到向量元素位置的0-2處(共3個元素)
③、 vector
a(5, 1
) ; vector
b(10
) ; b.insert(b.begin(), a.begin(), a.end()) ;
//將a.begin(), a.end()之間的全部元素插入到b.begin()前
7>. 刪除 -erase①、b.erase(b.begin()) ;
//將起始位置的元素刪除
②、b.erase(b.begin(), b.begin()+3) ;//
將(b.begin(), b.begin()+3)之間的元素刪除
8>.交換 -swapb.swap(a) ;
//a向量與b向量進行交換
與陣列相同, 向量也可以增加維數, 例如宣告乙個m*n大小的二維向量方式可以像如下形式:
vector< vector > b(10, vector(5)); //在這裡, 實際上建立的是乙個向量中元素為向量的向量。同樣可以根據一維向量的相關特性對二維向量進行操作。建立乙個10*5的int型二維向量
例:
1 #include2 #include34using
namespace std ;56
int main()
7
2324
return
0;25 }
2018 4 11刷題筆記
classa newa newa newa echo a num 答案是3 因為static變數常駐記憶體 server 是乙個包含了諸如頭資訊 header 路徑 path 以及指令碼位置 script locations 等等資訊的陣列。這個陣列中的專案由 web 伺服器建立。不能保證每個伺服器...
Leetcode刷題筆記
1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...
LeetCode刷題筆記
實現strstr 給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。示例 1 輸入 haystack hello needle ll 輸出 2 示例 2 輸入 haystack aaaa...