1: //deque11.cpp 3: #include <iostream> 4: #include <deque> 5: using namespace std; 7: int main() 8: { 9: cout << "\nThis program illustrates the insert() member function."; 10: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 12: int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 13: deque<int> d(a, a+10); 14: cout << "\nFor d we have ..."; 15: cout << "\nSize = " << d.size(); 16: cout << "\nContents: "; 17: for(deque<int>::size_type i=0; i<d.size(); i++) 18: cout << d.at(i) << " "; 19: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 21: deque<int>::iterator p = d.insert(d.begin()+3, 17); 22: cout << "\nNow we insert 17, using this call to insert():" 23: "\np = d.insert(d.begin()+3, 17);\nThen for d we have ..."; 24: cout << "\nSize = " << d.size(); 25: cout << "\nContents: "; 26: for(deque<int>::size_type i=0; i<d.size(); i++) 27: cout << d.at(i) << " "; 28: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 30: cout << "\nAnd the value pointed to by the iterator\nreturned " 31: "by this call to insert() is also " << *p << "."; 32: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 34: d.insert(d.begin()+9, 5, 33); 35: cout << "\nNext we insert 5 copies of 33, using this call to " 36: "insert():\nd.insert(d.begin()+9, 5, 33);\nThen for d we have ..."; 37: cout << "\nSize = " << d.size(); 38: cout << "\nContents: "; 39: for(deque<int>::size_type i=0; i<d.size(); i++) 40: cout << d.at(i) << " "; 41: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 43: d.insert(d.begin()+11, a+1, a+4); 44: cout << "\nNext we insert some values from an array, using this call " 45: "to insert():\nd.insert(d.begin()+11, a+1, a+4);" 46: "\nThen for d we have ..."; 47: cout << "\nSize = " << d.size(); 48: cout << "\nContents: "; 49: for(deque<int>::size_type i=0; i<d.size(); i++) 50: cout << d.at(i) << " "; 51: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 53: //The following code should work the same for a deque as it does 54: //for vectors (see vector11.cpp) but it does not. It causes a runtime 55: //error under Visual C++ 2005. With gnu C++ 3.3.3 under Debian it does 56: //not produce a runtime error, but it does not produce the expected 57: //result either. 58: //d.insert(d.begin()+7, d.begin()+1, d.begin()+4); 59: //cout << "\nFinally we insert some values from the deque itself,\n" 60: // "using this call to insert():" 61: // "\nd.insert(d.begin()+7, d.begin()+1, d.begin()+4);" 62: // "\nThen for d we have ..."; 63: //cout << "\nSize = " << d.size(); 64: //cout << "\nContents: "; 65: //for(deque<int>::size_type i=0; i<d.size(); i++) 66: // cout << d.at(i) << " "; 67: //cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 68: }