#include
using
namespace std;
#include
#include
intmain()
cout <<
"v1:"
<< endl;
vector<
int> v1;
//簡單理解v.begin()與v.rbegin()的區別:乙個將vector陣列的前面當作頭,乙個將vector陣列的後面當作頭。
//於是。如果頭指標要訪問後面的元素,當然是++。而不是--。
//同理:v.end()與v.rend()的區別:乙個將vector陣列的後面當作尾,乙個將vector陣列的前面當作尾。
v1.assign
(v.rbegin()
, v.
rend()
);//將v中的元素逆序放入v1。將後邊當作頭,前邊當做尾,然後放入。
cout <<
"v1的capacity:"
<< v1.
capacity()
<< endl;
cout <<
"v1的size:"
<< v1.
size()
<< endl;
for(
auto it = v1.
begin()
; it != v1.
end(
); it ++
) vector<
int>
::reverse_iterator head = v1.
rend()
-1;//vector陣列的前面當作尾。要訪問後面的,需要--
cout <<
*head << endl;
//4 3 2 1 則v1.rend()-1;指向4
system
("pause");
}
逆向迭代器 reverse iterator
對於逆向迭代器,很重要的一點是需要弄清楚邏輯位置和實際位置二者的區別。下圖顯示了逆向迭代器的位置和所指的數值 可以發現,逆向迭代器所指位置 實際位置 和所代表的的數值 邏輯位置或數值 是不同的。c 這麼做是有其原因的。導致這個行為的原因是區間的半開性。為了能夠制定容器內的所有元素,我們必須運用最後乙...
Vector 迭代器 陣列
標準庫型別vector表示物件的集合,其中所有的物件型別都相同 集合中每個物件都有乙個與之對應的索引,索引用於訪問物件。vector是乙個類模板,是模板而非型別。1.初始化vector物件 vectorv1 t型別空vector,執行預設初始化 vectorv2 v1 v2包含所有v1元素的副本 v...
vector迭代器失效
c 面試題經常會背問到vector和list的區別,其中就有乙個問題就困擾我們的,面試官說vector在進行插入和刪除元素的時候迭代器會失效,list不會,那這邊由我來給大家舉個列子 include include using namespace std int main include inclu...