#include<iostream>
#include <vector>
#include<string>
#include <list>
#include <deque>
#include<forward_list>
using namespace std;
int main(int argc, char**argv)
{
list<string>slist;
slist.insert(slist.begin(),"10");
slist.insert(slist.end(), "12");
vector<string>Vstring{ "hello", "aff", "teny" };
Vstring.insert(Vstring.end(), slist.begin(), slist.end());
//Vstring.insert(Vstring.begin(), { "asasf", "assdf" });//錯誤顯示無效的迭代器範圍
vector<string>::iterator it = Vstring.begin();
cout << *it<<endl;
////////////////////////////////////////////////
int som_val = 1;
vector<int>iv = { 1, 1, 1, 1, 1, 1, 1, 1 };
vector<int> ::iterator Viter = iv.begin();
int org_size = iv.size(), new_ele = 0;
while (Viter!=(iv.begin()+org_size/2+new_ele))
if (*Viter == som_val)
{
Viter=iv.insert(Viter, 2 * som_val);//當容器vector插入新數據後,會重排,導致原有迭代器失效。此時可以迭代兩次,使其推到下一個新位置上
Viter++;
Viter++;//要使用Viter++;必須用操作後返回的iterator值而不僅僅只執行iv.insert();操作
// new_ele++;//作爲標記位
}
else
Viter++;
////////////////////////////////////////////////
//back不適用於forward_list
//at和下標操作只適用於string vector deque array
//cout << iv.at[4];
cout << iv.at(4);
cout << iv[3];
cout<<iv.front();
////////////////////////////////////////////////
vector<int>nullvector;
nullvector.at(0);
cout << nullvector[0];
//對於一個空容器調用front和back就像使用一個越界的下標一樣 ,是一種嚴重的程序設計錯誤,所以他會拋出異常圖片1是拋出異常結果
///////////////////////////////////////////////
list<string>lst;
auto iter = lst.begin();
string word;
while (cin>>word)
{
iter = lst.insert(iter, word);
}
for (auto it = lst.cbegin(); it != lst.end(); it++)
{
cout << *it << endl;
}
cin.clear();//將cin的狀態清除要不然cin默認遇到eof置爲有效位
////////////////////////////////////////////////deque
deque<string>Deque;
string Dword;
while (cin >> Dword)
Deque.push_back(Dword);
for (auto it = Dword.begin(); it != Dword.end();it++)
{
cout << *it << endl;
}
cin.clear();
/////////////////////////////////////////////////list
list<string>iList;
string Lword;
while (cin >> Lword)
iList.push_back(Lword);
for (auto it = iList.cbegin(); it != iList.end(); it++)
{
cout << *it << endl;
}
cin.clear();
system("pause");
}
順序容器--添加及訪問元素
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.