C++小知识积累
2018-06-22 05:36:57来源:未知 阅读 ()
一、vector创建及其排序
1.vector:c++容器,类似数组,但不限长度。
2.基本类型输入输出及排序:
1 #include<iostream> 2 #include<vector> 3 #include<functional> 4 #include<algorithm> 5 using namespace std; 6 7 int main(){ 8 int a[12]={4,1,5,10,9,6,3,2,7,8,11,12}; 9 vector<int> num(10); 10 //输入值 11 for(int i=0;i<10;i++){ 12 num[i]=a[i]; 13 } 14 //追加值 15 num.push_back(a[10]); 16 num.push_back(a[11]); 17 //输出值 18 cout<<"初始:"; 19 for(int j=0;j<num.size();j++) 20 cout<<num[j]<<" "; 21 //排序(通过begin(),end()来挑选值的个数) 22 //升序--默认 23 sort(num.begin(),num.end()); 24 //输出值 25 cout<<endl<<"升序:"; 26 for(int j=0;j<num.size();j++) 27 cout<<num[j]<<" "; 28 //降序--greater函数需要include<functional> 29 sort(num.begin(),num.end(),greater<int>()); 30 //输出值 31 cout<<endl<<"降序:"; 32 for(int j=0;j<num.size();j++) 33 cout<<num[j]<<" "; 34 }
结果:
3.结构体类型排序:
1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 #include<string.h> 5 using namespace std; 6 7 typedef struct point{ 8 string name; 9 int x,y; 10 }point; 11 //x降序排序 12 bool compare_x1(point p1,point p2){ 13 return (p1.x>p2.x); 14 } 15 //x升序排序 16 bool compare_x2(point p1,point p2){ 17 return (p1.x<p2.x); 18 } 19 //y降序排序 20 bool compare_y1(point p1,point p2){ 21 return (p1.y>p2.y); 22 } 23 //y升序排序 24 bool compare_y2(point p1,point p2){ 25 return (p1.y<p2.y); 26 } 27 28 int main(){ 29 //初始化 30 point p1,p2; 31 p1.name="p1"; 32 p2.name="p2"; 33 p1.x=1;p2.x=2; 34 p1.y=2;p2.y=1; 35 //创建并加入vector 36 vector<point> p; 37 p.push_back(p1); 38 p.push_back(p2); 39 //显示 40 int i; 41 cout<<"初始:"; 42 for(i=0;i<p.size();i++) 43 cout<<p[i].name<<" "; 44 //x降序排序 45 sort(p.begin(),p.end(),compare_x1); 46 cout<<endl<<"x降序(p1.x<p2.x):"; 47 for(i=0;i<p.size();i++) 48 cout<<p[i].name<<" "; 49 //x升序排序 50 sort(p.begin(),p.end(),compare_x2); 51 cout<<endl<<"x升序(p1.x<p2.x):"; 52 for(i=0;i<p.size();i++) 53 cout<<p[i].name<<" "; 54 //y降序排序 55 sort(p.begin(),p.end(),compare_y1); 56 cout<<endl<<"y降序(p1.y>p2.y):"; 57 for(i=0;i<p.size();i++) 58 cout<<p[i].name<<" "; 59 //y升序排序 60 sort(p.begin(),p.end(),compare_y2); 61 cout<<endl<<"x降序(p1.y>p2.y):"; 62 for(i=0;i<p.size();i++) 63 cout<<p[i].name<<" "; 64 }
结果:
二、string分割成string[]--strtok()
1 #include<iostream> 2 #include<string.h> 3 using namespace std; 4 5 int main(){ 6 char s[]="11:11:59"; 7 //分割 8 char* p=strtok(s,":"); 9 //变成string[] 10 string t[3]; 11 int m=0; 12 while(p!=NULL){ 13 t[m]=p; 14 m++; 15 p=strtok(NULL,":"); 16 } 17 //显示 18 for(int i=0;i<3;i++){ 19 cout<<t[i]<<" "; 20 } 21 }
结果:
三、string 转 int-- atoi()
接上面代码:(***#include<algorithm>)
1 //String--int 2 int hour=atoi(t[0].c_str()); 3 int minute=atoi(t[1].c_str()); 4 int second=atoi(t[2].c_str()); 5 cout<<endl<<hour<<":"<<minute<<":"<<second;
结果:
四、string根据空格分割为多个string(利用字符串流)
1 #include<iostream> 2 #include<string> 3 #include<sstream> 4 using namespace std; 5 int main(){ 6 string str1 = "qwe bbb 333"; 7 string str2,str3,str4; 8 istringstream is(str1); 9 is>>str2>>str3>>str4; 10 cout<<str2<<","<<str3<<","<<str4<<endl; 11 }
结果:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PHP基础知识介绍 2019-10-31
- 容易忘记的PHP知识点 2019-10-12
- 讲解ASP基础知识Command对象 2019-09-23
- 【并发编程】多线程程序同步策略 2019-08-13
- 服务端php之文件上传 2019-05-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash