顺序容器的简单操作

mac2022-06-30  21

#include<iostream> #include<iterator> #include<list>//列表容器 #include<deque>//双端队列容器 using namespace std; template<class T,class OutputIterator> void printcontainer(const char*message, const T&s, OutputIterator result) { cout << message << ":"; copy(s.begin(), s.end(),result); cout << endl; } int main() { deque<int>s; for (int i = 0; i < 10; i++) { int x; cin >> x; s.push_front(x);//头插 } printcontainer("deque at first",s, ostream_iterator<int>(cout, " ")); //接下来用双端队列s的内容逆序构造列表容器l list<int>l(s.rbegin(),s.rend()); printcontainer("list at first", l, ostream_iterator<int>(cout, " ")); //接下来将列表容器l的每相邻两个容器顺序颠倒 list<int>::iterator it; it = l. begin(); while (it != l.end()) { int temp = *it; it = l.erase(it);//删除l容器中it所指向的元素,返回被删除的下一个元素的迭代器 it++; l.insert(it,temp);//在l容器中it所指向的位置插入一个新的元素temp,插入后的元素夹在原it和it-1所指向的元素之间,返回一个迭代器指向新插入的元素 } printcontainer("l中的每相邻两个容器顺序颠倒", l, ostream_iterator<int>(cout, " ")); //接下来将列表容器l的内容给s赋值 s.assign(l.begin(),l.end()); printcontainer("l给s赋值", l, ostream_iterator<int>(cout, " ")); system("pause"); return 0; }
最新回复(0)