兩個vector對應元素相加 2 3 vector

2021-10-18 02:00:11 字數 3070 閱讀 3966

vector是什麼東東呢?就是它字面意思,向量。怎麼理解呢?高中數學中我們學了能表示二維平面的中某一點的向量,以及三維空間中表示某一點的向量。到了大學,我們更加了解到<>中有多少個數字就能表示多少維度空間中的一點。c++借鑑並擴充套件了這個表示方法,用它來表示同種型別元素的聚集(我之所以不說是「集合」,是因為集合是元素不可重複的)。vector是stl容器的一種,因此它具有理論上儲存無限元素的能力(這主要取決於記憶體大小的啦~)。vector涉及到模板以及一些更深的東西,但由於它的易用性及良好效能不得不提前拿出來遛一遛~

記得高中物理老師說過一句話:萬變不離其宗。果然沒錯,認識乙個型別還是得從它的初始化開始啊。vector是std命名空間 中的一員,標頭檔案是。

# include using namespace std;

vectorv1;//1. 定義乙個vector物件v1,儲存t型別的元素

vectorv2(v1);//2. 定義乙個vector物件v2,並用v1初始化

vectorv3 = v1;//3. 同2

vector v4(n, val);//4. 定義乙個vector物件v4,並往裡邊塞了n個t型別的元素val

vectorv5;//5. 初始化列表,建立乙個包含元素為a,b,c的vector物件v5

vectorv6 = ;//6. 同5

這裡出現了t型別,這是啥玩意兒呢?這就是模板引數,現在你只用知道:只要是能夠定義乙個變數的型別,都可以用來替換t。比如:

vectorvec(5,10);//建立了乙個包含5個10的vector物件vec,即,vec = ;

//當然,你也可以這樣:

vector> vec1;//這個的意思就是宣告了乙個vector物件vec1,他儲存的元素為vector

也就是說,vector是可以巢狀的。機智的小鍋鍋小姐姐們有沒有發現什麼神奇的東西呢?沒錯,就是下邊這個圖:

如果使用一層vector你可以表示一維空間的話,那麼使用巢狀vector就可以用來表示超過一維的空間!而且,這個空間還可以是非規則的,因為你可以任意改變每一層的vector的容量。

小帥翔提示

下邊這兩個初始化需要留意,因為他們含義不同。具體為什麼後續再說明。

vectorvec;//正確,初始化只含有乙個元素10的vec物件

vectorvec1(10);//正確,初始化含有10個預設元素0的vec物件

vectorvec2;//正確,使用初始化列表將字面值存到vec2中

vectorvec3("xiaoxianggezuishuai");//錯誤,不能用字面值構造vector物件

下邊介紹一些超級常用的方法,學會這些方法,你就可以橫著使用vector了哈哈哈哈~

首先我們宣告乙個vector變數v,則有:

v.empty();

如果v不含任何元素,則返回true,否則返回false
v.size();

返回v中元素個數
v.push_back(t);

在v尾端新增乙個元素t
v[n];

n是整型資料,和陣列類似的用法,表示取出v中索引為n的元素
v1 == v2

v1,v2相等,當且僅當他們的元素型別相同,元素個數相等,而且對應位置處的元素值相等
v.insert(it,val);

在指定的it位置插入乙個元素val,it是乙個迭代器
v.erase(it);

刪除指定it位置的乙個元素,it是乙個迭代器
v.clear();

清空v中的所有元素
注意不允許在迴圈體內做可能改變vector大小的操作。切記!

上邊有兩個方法使用到了迭代器,那什麼是迭代器呢?迭代器其實是一種設計模式,具體是什麼現在還不用管那麼多,魯迅先生說過:曾經有乙個很好的遍歷容器的方法擺在我面前,但我沒有珍惜,而是直接拿來使用了。哈哈哈哈哈。

小帥翔提示

迭代器的使用和指標類似,使用「->」訪問被指向物件的成員,使用「*」解引用。

想要獲取vector的迭代器,很簡單:

vectorvec;

auto it1 = vec.begin();//獲取乙個指向vec中第乙個元素的迭代器,也就是1

auto it2 = vec.end();//獲取乙個指向vec中最後乙個元素下一位置地迭代器,這裡it2指向的是3後邊乙個位置

說明

//正向遍歷vec中的元素,end()作為遍歷結束標誌

for (; it1 != vec.end(); ++it)

cout << *it1<< endl;

//移動迭代器it1到元素2的位置

it1 += 1;

jsp兩個數字相加 2 兩數相加

題目 給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0...

PTA 兩個時間相加

時間類time的參考框架如下,通過過載操作符 實現兩個時間的相加,要求將小時範圍限制在0 23時,分鐘範圍限制在0 59分,秒鐘範圍限制在0 59秒。設計主程式,讀入兩個時間,對時間的合法性進行判斷,若時間不合法,則輸出 time error 若時間值合法,則進行兩個時間的相加,並將結果以 小時 分...

python 兩列表對應元素相加形成新列表 zip

zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。zip 方法在 python 2 和 python 3 中的不同 在 python 3.x ...