#include#include using namespace std;
int main()
; //令i依次為ivec中的每乙個元素,並顯示
for(auto i : ivec)
cout << i << " ";
cout << endl;
//新增元素到ivec尾端
for(int i=11;i<=20;i++)
ivec.push_back(i);
//令i依次等於ivec中的每乙個元素
for(auto &i : ivec)
i *= i;
//令i依次等於ivec中的每乙個元素
for(auto i : ivec)
cout << i << " ";
cout << endl;
//依然可以用下標去訪問每乙個元素
//也可寫為for(decltype(ivec.size()) i=0;i!=20;i++)
for(int i = 0;i<20;i++)
cout << ivec[i] << " ";
cout << endl;
//.size()方法,顯示擁有元素的個數
//.empty()方法,判空
cout << "ivec中有元素" << ivec.size() << "個。" << endl;
//關於迭代器,用到再說。。。。
}
從尾到頭列印鍊錶
輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。
輸入描述:
輸入為鍊錶的表頭
輸出描述:
輸出為需要列印的「新鍊錶」的表頭
我的**
/**
* struct listnode
* };
*/class solution
vectorresult2;
for(auto i = result.end()-1;i!=result.begin()-1;i--)
result2.push_back(*i);
return result2;
}};
抄的別人的
/**
* struct listnode
* };
*/class solution
return result;
}};
先用棧(這裡用的deque 雙端佇列,比棧更強大),再轉到vector 實現。
/**
* struct listnode
* };
*/class solution
vectorresult2;
result2.assign(result.begin(),result.end());
return result2;
}};
用兩個棧實現佇列
用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。
class solution
int pop()
a = stack2.top(); //起初,到這裡就結束了,始終通不過,,連return都忘了啊啊啊啊!!!!邏輯很重要。
stack2.pop();
return a;
}else
}private:
stackstack1;
stackstack2;
};
直接用的別人的思路
《分析》:
入隊:將元素進棧a
出隊:判斷棧b是否為空,如果為空,則將棧a中所有元素pop,並push進棧b,棧b出棧;
如果不為空,棧b直接出棧。
結果 有乙個點困了好久 見**。
vector操作小結
前面了解了一下vector,現在我們來看看vector的相關操作。int main vectorv5 vectorv6 3 只提供數量而略去初始值,int 0,string 空串 vector iterator it push back向vector物件中新增元素 for int i 0 i 10 ...
vector的高階用法
這裡主要介紹vector的元素訪問方法,迭代器相關函式,元素查詢和搜尋,字串排序,插入元素,刪除元素,交換元素等內容。1 元素訪問方法 按c和c 的慣例,第乙個元素的下標為0 最後乙個元素的索引下標為size 1,即第n個元素的下標為n 1。可以直接訪問vector型容器中元素的操作方法主要包括 a...
容器vector 的用法
vector 是向量型別,它可以容納許多態別的資料,如若干個整數,所以稱其為容器。vector 是c stl的乙個重要成員,使用它時需要包含標頭檔案 include 一 vector 的初始化 可以有五種方式,舉例說明如下 1 vectora 10 定義了10個整型元素的向量 尖括號中為元素型別名,...