C++//常用排序算法 sort //打乱 random_shuffle //merge 两个容器元素合并,并储存到另一容器中(相同的有序序列) //reverse 将容器内的元素进行反转
1 //常用排序算法 sort //打乱 random_shuffle 2 //merge 两个容器元素合并,并储存到另一容器中(相同的有序序列) 3 //reverse 将容器内的元素进行反转 4 5 #include<iostream> 6 #include<string> 7 #include<vector> 8 #include<algorithm> 9 #include<functional> 10 11 using namespace std; 12 13 void myPrint(int val) 14 { 15 cout << val << " "; 16 } 17 18 //降序 19 int Mysort(int v1, int v2) 20 { 21 return v1 > v2; 22 } 23 //排序 24 void test01() 25 { 26 vector<int>v; 27 v.push_back(30); 28 v.push_back(10); 29 v.push_back(90); 30 v.push_back(60); 31 v.push_back(80); 32 v.push_back(70); 33 34 //利用 sort 排序 35 sort(v.begin(), v.end()); 36 for_each(v.begin(), v.end(), myPrint); 37 cout << endl; 38 39 //降序 40 sort(v.begin(), v.end(), greater<int>()); 41 for_each(v.begin(), v.end(), myPrint); 42 cout << endl; 43 44 sort(v.begin(), v.end(), Mysort); 45 for_each(v.begin(), v.end(), myPrint); 46 cout << endl; 47 } 48 49 //打乱 random_shuffle 50 void test02() 51 { 52 srand((unsigned int)time(NULL)); 53 vector<int>v2; 54 for (int i = 0; i < 10; i++) 55 { 56 v2.push_back(i); 57 } 58 cout << "初始化:" << endl; 59 for_each(v2.begin(), v2.end(), myPrint); 60 61 //打乱 62 cout << "\n第一次:" << endl; 63 64 random_shuffle(v2.begin(), v2.end()); 65 66 67 for (vector<int>::iterator it = v2.begin(); it != v2.end(); it++) 68 { 69 cout<< * it << " "; 70 } 71 cout << endl; 72 73 cout << "第二次:" << endl; 74 75 for_each(v2.begin(), v2.end(), myPrint); 76 77 cout << endl; 78 } 79 80 //merge 两个有序数列 合并另一个容器中 81 82 void MyPrint(int z) 83 { 84 cout << z << " "; 85 } 86 void test03() 87 { 88 vector<int>v1; 89 vector<int>v2; 90 91 for (int i = 0; i < 11; i++) 92 { 93 v1.push_back(i); 94 v2.push_back(i + 2); 95 } 96 //目标容器 97 vector<int>vTarget; 98 //分配空间 99 vTarget.resize(v1.size()+v2.size()); 100 101 merge(v1.begin(), v1.end(), v2.begin(), v2.end(), vTarget.begin()); 102 103 for_each(vTarget.begin(), vTarget.end(), MyPrint); 104 cout << endl; 105 106 } 107 //reverse 将容器内的元素进行反转 108 void test04() 109 { 110 vector<int>v; 111 v.push_back(200); 112 v.push_back(30); 113 v.push_back(80); 114 v.push_back(90); 115 v.push_back(10); 116 v.push_back(500); 117 118 cout << "没有反转" << endl; 119 for (vector<int>::iterator it = v.begin(); it != v.end(); it++) 120 { 121 cout << *it << " "; 122 } 123 cout << endl; 124 125 reverse(v.begin(), v.end()); 126 cout << "反转之后:" << endl; 127 for (vector<int>::iterator it = v.begin(); it != v.end(); it++) 128 { 129 cout << *it << " "; 130 } 131 cout << endl; 132 133 134 } 135 136 137 138 139 int main() 140 { 141 142 test01(); 143 test02(); 144 145 test03(); 146 test04(); 147 148 system("pause"); 149 return 0; 150 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15157110.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)