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 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15141173.html