#include<iostream>
#include<vector>
#include<list>
using namespace std;
int main()
{
int ival;
vector<int> ivec;
list<int> ilist; cout << "please input some integers for vector(ctrl+z to end)!!!" << endl;
while(cin >> ival)
ivec.push_back(ival);
cin.clear();
cin.ignore();
cout << "please input some integers for list(ctrl+z to end)!!!" << endl;
while(cin >> ival)
ilist.push_back(ival);
/*
vector<int>::iterator iter1;
list<int>::iterator iter2;
//for (vector<int>::iterator iter1 = ivec.begin(),list<int>::iterator iter2 = ilist.begin(); // 同一語句不能用逗號隔開定義兩種不同類型的變量。
for (iter1 = ivec.begin(),iter2 = ilist.begin();
//iter1 != ivec.end(), iter2 != ilist.end();//逗號表示條件是一個或關係
iter1 != ivec.end()&& iter2 != ilist.end();
++iter1, ++iter2)
if(*iter1 == *iter2)
cout << "元素相同!!!" << endl;
else
cout << "元素不相同!!!" << endl;
return 0;
*/
vector<int>::iterator iter1 = ivec.begin();
list<int>::iterator iter2 = ilist.begin();
while(iter1 != ivec.end() && iter2 != ilist.end())
{
if(*iter1 != *iter2)
break;
++iter1;
++iter2;
}
if(iter1 == ivec.end() && iter2 == ilist.end())
cout << "The vector contains the same elements as the list." << endl;
else
cout << "List and vector contain different elements." << endl;
return 0;
}
當把cin.ignore() 註釋掉後,注意以下不同輸入得到的不同結果:
問題一:上面的輸入爲什麼不能得到正確的輸出?
當cin.ignore()沒被註釋掉的話,注意下面不同的輸入輸出:
問題二:上面的輸入爲什麼不能得到正確的輸出?
問題三:上面的一些輸入中爲什麼會得到正確的輸出?