C++ //deque容器 构造函数 //deque赋值操作 //deque大小操作 //重新指定大小 //deque没有容量概念 //deque插入和删除 //deque 容器数据存取 ////deque 排序 sotr算法

  1 //deque容器 构造函数  //deque赋值操作   //deque大小操作 //重新指定大小
  2 //deque没有容量概念   //deque插入和删除  //deque 容器数据存取
  3 ////deque  排序 sotr算法
  4 
  5 #include<iostream>
  6 #include<vector>
  7 #include<deque>
  8 #include<algorithm>
  9 
 10 using namespace std;
 11 
 12 
 13 //打印
 14 void printDeuqe( const deque<int>& d)
 15 {
 16     for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
 17     {
 18         //*it = 100;  //容器中的数据不可以修改了
 19         cout << *it << " ";
 20     }
 21     cout << endl;
 22 }
 23 //deque容器 构造函数
 24 void test01()
 25 {
 26     deque<int>d1;
 27     for (int i = 0; i < 10; i++)
 28     {
 29         d1.push_back(i);
 30     }
 31     printDeuqe(d1);
 32 
 33     //将d1的值赋值给d2
 34     deque<int>d2(d1.begin(), d1.end());
 35     //deque<int>d2;
 36     //d2 = d1;
 37     printDeuqe(d2);
 38 
 39     deque<int>d3(10, 100);
 40     printDeuqe(d3);
 41 
 42     deque<int>d4(d3);
 43     printDeuqe(d4);
 44 
 45 }
 46 //打印
 47 void printDeque(const deque<int>& d2)
 48 {
 49     for (deque<int>::const_iterator it = d2.begin(); it != d2.end(); it++)
 50     {
 51         cout << *it << " ";
 52     }
 53     cout << endl;
 54 }
 55 
 56 //deque赋值操作
 57 void test02()
 58 {
 59     deque<int>d2;
 60     for (int i = 0; i < 10; i++)
 61     {
 62         d2.push_back(i);
 63     }
 64     printDeque(d2);
 65 
 66     //operator =等号赋值
 67     deque<int>d3;
 68     d3 = d2;
 69     printDeque(d3);
 70 
 71     //assign 赋值
 72 
 73     deque<int>d4;
 74     d4.assign(d2.begin(), d2.end());
 75     printDeque(d4);
 76 
 77     //n个几
 78     deque<int>d5;
 79     d5.assign(10, 100);
 80     printDeque(d5);
 81 
 82 }
 83 
 84 
 85 //打印
 86 void printDeuqe3(const deque<int>& d3)
 87 {
 88     for (deque<int>::const_iterator it = d3.begin(); it != d3.end(); it++)
 89     {
 90         cout << *it << " ";
 91     }
 92     cout << endl;
 93 }
 94 //deque大小操作
 95 
 96 void test03()
 97 {
 98     deque<int>d3;
 99     for (int i = 0; i < 10; i++)
100     {
101         d3.push_back(i);
102     }
103     printDeuqe3(d3);
104 
105     if (d3.empty())
106     {
107         cout << "d3为空!!" << endl;
108     }
109     else
110     {
111         cout << "d3不为空!!!" << endl;
112         cout << "d3的大小为:" << d3.size() << endl;
113         //deque没有容量概念
114 
115     }
116     //重新指定大小
117     d3.resize(15, 1);
118     //d3.resize(15);
119     printDeuqe3(d3);
120 
121     d3.resize(6);
122     printDeuqe3(d3);
123 
124 }
125 //打印
126 void printDeque4(const deque<int>& d4)
127 {
128     for (deque<int>::const_iterator it = d4.begin(); it != d4.end(); it++)
129     {
130         cout << *it << " ";
131     }
132     cout << endl;
133 }
134 //插入和删除
135 //两端操作
136 void test04()
137 {
138     deque<int>d4;
139     //尾插
140     d4.push_back(10);
141     d4.push_back(20);
142 
143     //头插
144     d4.push_front(100);
145     d4.push_front(200);
146 
147     printDeque4(d4); //200 100 10 20
148 
149 
150     //尾删
151     d4.pop_back();  //200 100 10
152     printDeque4(d4);
153     //头删
154     d4.pop_front(); //100  10
155     printDeque4(d4);
156 
157 
158 }
159 
160 void test05()
161 {
162     deque<int>d5;
163     d5.push_back(10);
164     d5.push_back(20);
165     d5.push_front(100);
166     d5.push_front(200);
167 
168     printDeque4(d5); //200 100 10 20
169 
170     //insert插入
171     d5.insert(d5.begin(), 1000);
172     printDeque4(d5);//1000   200  100  10  20
173 
174     d5.insert(d5.begin(), 3,10001);
175     //10001 10001 10001 1000 200 100 10 20
176     printDeque4(d5);
177 
178 
179     //按照区间插入
180     deque<int>d6;
181     d6.push_back(1);
182     d6.push_back(2);
183     d6.push_back(3);
184 
185     d5.insert(d5.begin(), d6.begin(), d6.end());
186     //1 2 3 10001 10001 1001 1000 200 100 10 20
187     printDeque4(d5);
188 }
189 void test07()
190 {
191     deque<int>d7;
192     d7.push_back(10);
193     d7.push_back(20);
194     d7.push_front(100);
195     d7.push_front(200);
196 
197     //200 100 10 20
198 
199     //删除
200     deque<int>::iterator it = d7.begin();
201     it++;   //第二个数据
202     d7.erase(it);
203     //200 10 20
204     printDeque4(d7);
205 
206 
207     //按照区间方式删除
208     d7.erase(d7.begin(), d7.end());  //换行符
209     printDeque4(d7);
210     //清空
211     d7.clear();
212     printDeque4(d7);
213 
214 }
215 
216 
217 //deque 容器数据存取
218 void test08()
219 {
220     deque<int>d8;
221     d8.push_back(10);
222     d8.push_back(20);
223     d8.push_back(30);
224 
225     d8.push_front(100);
226     d8.push_front(200);
227     d8.push_front(300);
228 
229     //300 200 100 10 20 30
230     //通过[]方式访问元素
231     for (int i = 0; i < d8.size(); i++)
232     {
233         cout << d8[i] << " ";
234     }
235     cout << endl;
236 
237     //通过at的方式
238     for (int i = 0; i < d8.size(); i++)
239     {
240         cout << d8.at(i) << " ";
241     }
242     cout << endl;
243 
244     cout << "第一个元素为: " << d8.front() << endl;
245     cout << "最后一个元素为: " << d8.back() << endl;
246 }
247 //打印
248 void printDeque9(const deque<int>& d9)
249 {
250     for (deque<int>::const_iterator it = d9.begin(); it != d9.end(); it++)
251     {
252         cout << *it << " ";
253     }
254     cout << endl;
255 }
256 
257 //deque  排序 sotr算法
258 void test09()
259 {
260     deque<int>d9;
261     d9.push_back(10);
262     d9.push_back(20);
263     d9.push_back(30);
264 
265     d9.push_front(100);
266     d9.push_front(200);
267     d9.push_front(300);
268     //300 200 100 10 20 30 
269     printDeque9(d9);
270 
271     //排序  从小到大 升序
272     //对于支持随机访问迭代器的容器,都可以利用sort算法直接对其进行排序
273     //vector容器也可以利用 sort 进行排序
274     sort(d9.begin(), d9.end());
275     cout << "排序后的结果:" << endl;
276     printDeque9(d9);
277 
278 
279 
280 }
281 
282 int main()
283 {
284     test01();
285     test02();
286 
287      test03();
288 
289     test04();
290 
291     test05();
292 
293     test07();
294 
295     test08();
296 
297     test09();
298     system("pause");
299     return 0;
300 }

 

posted on 2021-08-14 16:52  Bytezero!  阅读(55)  评论(0编辑  收藏  举报