![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 74
somestill
这个作者很懒,什么都没留下…
展开
-
STL之sort、unique
#include #include #include using namespace std;struct cuboid{ int cid; int length; int width;} box;void print(cuboid s){ cout<<s.cid<<" "<<s.length<<" "<<s.width<<endl;}bool原创 2012-12-12 19:14:53 · 649 阅读 · 0 评论 -
石子合并问题(动态规划)
试题信息 在一个园形操场的四周摆放N堆石子(N≤100),现要将石子有次序地合并成一堆。规定 每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。, ①选择一种合并石子的方案,使得做N-1次合并,得分的总和最小; ②选择一种合并石子的方案,使得做N-1次合并,得分的总和最大。 例如,所示的4堆石子,每堆原创 2013-04-21 12:37:06 · 2522 阅读 · 3 评论 -
部落卫队问题
部落卫队问题描述:原始部落中的居民为了争夺资源,常发生冲突。几乎每个居民都有仇敌。酋长为了组织一个部落卫队,希望从部落居民中选出最多的居民入伍,并保证队伍中任何2个人都不是仇敌。编程任务:根据给定的居民间的仇敌关系,编程计算出部落卫队的最佳方案。数据输入:第1行2个整数n,m表示部落中居民个数,居民中有m个仇敌关系。居民编号1,2,...,n。接下来m行,每行2个整数u原创 2013-05-16 21:58:00 · 4324 阅读 · 0 评论 -
集装箱装载问题
题目详情:有一批n个集装箱要装上两艘载重量分别为weightone,weighttwo的轮船,其中,集装箱i的重量为weight【i】,现在要确定是否存在一个合理的装载方案可以把所有的集装箱装上这两个轮船。实现代码:#include #include #include using namespace std;int totalweight=0,weightone,weighttwo原创 2013-05-17 18:15:56 · 3030 阅读 · 0 评论 -
最大子段和
题目内容:给定一定数量的数字串,计算此数字串的最大子串和(未限定个数)具体代码实现:#include #include #include using namespace std;int main(){ int num,tmp; cout<<"请输入元素个数:"<<endl; cin>>num; vectorivec; for(int原创 2013-05-07 21:09:38 · 747 阅读 · 0 评论 -
最大m字段和
#include#define max(a,b) (a>b)?a:b#define M 1000011#define INF 0x7fffffff //极大值int a[M],b[2][M];int main(){ int m,n,i,j,max; while(scanf("%d%d",&m,&n)!=EOF) { for(i=1; i<=n;转载 2013-05-13 19:06:03 · 1026 阅读 · 0 评论 -
判断是否为素数
本程序采用了二次探测定理,实现代码如下:#include #include #include using namespace std;void power(unsigned long a,unsigned long p,unsigned long n,unsigned long &result , bool &composite){ unsigned long x;原创 2013-05-30 16:13:18 · 812 阅读 · 0 评论 -
n个人围成一圈报数问题
题目(摘自谭浩强的C语言):有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人。实现代码:#includeint find(int *a,int n){ int i=0,j,k,x=n-1; while(x) { for(j=1; j<=3;) {原创 2013-05-30 16:14:25 · 10513 阅读 · 2 评论 -
游艇租用问题(动态规划)
一、问题描述:长江游艇俱乐部在长江上设置了n个游艇出租站1,2,3…,n。有课可以在这些游艇出租站用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1二、实现代码:#include #include using namespace std;int main(){ int num,i,j,k,tmp; cin>>原创 2013-04-21 15:12:01 · 7344 阅读 · 1 评论 -
STL中的常用的vector,map,set,Sort用法
STL中的常用的vector,map,set,Sort用法 C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库。容器往往包含同一类型的数据。STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。.一. vector1.声明: 一个vector类似于一个动态的一维数组。转载 2014-07-15 20:47:40 · 1165 阅读 · 0 评论 -
STL之string的相关函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常stri转载 2012-12-12 19:34:36 · 400 阅读 · 0 评论 -
在STL中基本容器有: string、vector、list、deque、set、map
在STL中基本容器有: string、vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了string、 vector、list、deque、set 是有序容器1转载 2014-07-31 15:03:17 · 971 阅读 · 0 评论 -
vs2010配备boost编程环境
vs2010配置boost编程环境第一步:下载boost,我下载的方法是从http://www.boost.org/上找最新的下载。名字叫boost_1_53_0。 第二步:在D盘,解压文件 第三步:开始->程序->MicrosoftVisual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010),打开一个控制台转载 2016-01-12 16:21:20 · 679 阅读 · 1 评论 -
C++ typename的起源与用法
目录起因typename的常见用法typename的来源一些关键概念限定名和非限定名依赖名和非依赖名类作用域引入typename的真实原因一个例子问题浮现千呼万唤始出来不同编译器对错误情况的处理使用typename的规则其它例子再看常见用法参考写在结尾起因近日,看到这样一行代码:typedef typename __type_traits::ha转载 2016-03-03 15:41:07 · 4918 阅读 · 7 评论 -
asio的post和run函数
受到avplayer群里的aver的影响,我也开始对asio感兴趣了,本着啥都要参和参和的思想,我也来搞一把asio,学到点东西就记录一下,由于是初学,可能会有很多错误,各位看官如果发现问题请不吝赐教或者尽情开喷。一般来说大多数人使用asio都是用它来做异步的网络库来使用,但是asio本质上是一个通用的异步库,并不是只能用来做网络通信,所以我不打算一上来就搞网络方面的东西。异步的概念其实很转载 2016-08-09 09:53:01 · 7233 阅读 · 1 评论 -
身份证号码验证程序
描述:验证输入的身份证号码是否正确;实现代码:#include #include using namespace std;int main(){ string num; while(1) {loop: cout<<"请输入你要验证的身份证号码:"<<endl; cin>>num; if(num.l原创 2013-04-08 13:39:43 · 3016 阅读 · 1 评论 -
分治法求逆序数
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。如2、4、3、1中,2、1,4、3,4、1,3、1是逆序,逆序数是4。c++实现代码如下:#include #include using namespace std;int calc(vectora,vectorb,int first,int原创 2013-04-12 20:48:22 · 1496 阅读 · 0 评论 -
STL之map、set数据结构基础
STL之map、set数据结构基础摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。STL map和set的转载 2012-12-16 15:01:07 · 843 阅读 · 0 评论 -
STL之count、list
count 的应用:#include #include #include //泛型算法头文件using namespace std;int main(){ int ival,searchValue; vector ivec; cout<<"enter some inlegers(crel+z to end):"<<endl; while(ci原创 2012-12-16 15:12:43 · 2216 阅读 · 0 评论 -
vector之resize、fill
#include #include #include using namespace std;void print(int &elem){cout<<elem<<" ";}int main(){ vector V(8,10); //初始化数组v含有8个元素,每个元素的值为10 int n,start,count,paint; for原创 2012-12-16 15:05:57 · 2715 阅读 · 0 评论 -
string类的构造函数
string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string类的字符操作:cons转载 2012-12-16 14:57:39 · 784 阅读 · 0 评论 -
Vector的成员函数
c.assign(beg,end) 将[beg; end)区间中的数据赋值给c。c.assign(n,elem) 将n个elem的拷贝赋值给c。c.at(idx)传回索引idx所指的数据,如果idx越界,抛出out_of_range。例如:int iVal1 = v[7]; // 检查是否越界- will转载 2012-12-16 15:03:08 · 659 阅读 · 0 评论 -
浅析C语言中的指针
首先,运行如下代码#include #include int main(){ int a=1; int *p=&a; int **q=&p; printf("%d\n",a); printf("%d\n",&p); printf("%d\n",p); printf("%d\n",*p); printf("%d\n",*q);原创 2013-02-01 23:21:50 · 733 阅读 · 0 评论 -
单向链表(二级指针实现)
#include #include typedef struct newlist{ int data; struct newlist *next;//next指针存储在当前的结构体中,此链表为单链表,且数据按从小到大插入} onelist;int insertone(onelist **old_flist,int a) //传过来的地址是赋值给old_flist的,原创 2013-02-02 19:08:02 · 3387 阅读 · 2 评论 -
单链表(一级指针实现)
//基本思路和上一篇博文类似,只是本次在传输时直接传输首指针所指向的内存地址,而不是首指针自身的地址,并在每次弹出栈时返回首指针所指向的地址#include #include typedef struct newlist{ int data; struct newlist *next;} onelist;onelist *insertone(onelist *old_原创 2013-02-02 19:09:31 · 1143 阅读 · 0 评论 -
双向链表(二级指针实现)
#include #include typedef struct newlist{ int data; struct newlist *next; struct newlist *pre;} onelist;int insertone(onelist **old_flist,onelist **old_elist,int a) {原创 2013-02-03 13:29:51 · 1217 阅读 · 0 评论 -
链表
#include #include typedef struct newlist { int data; struct newlist *next; struct newlist *pre; } onelist; int insertone(onelist **old_flist,onelist **ol原创 2013-02-04 12:10:19 · 420 阅读 · 0 评论 -
括号配对问题
#include #include using namespace std;typedef struct{ char data[10000]; int top;}stack;void compare(stack *old,char tmp){ if((old->data[old->top]=='('&&tmp==')')||(old->data[old->top原创 2013-03-04 21:31:36 · 546 阅读 · 0 评论 -
会场安排问题(贪心算法)
#include #include #include using namespace std;typedef struct plan{ int startime; int endtime; struct plan *next;}sqlist;void insqlist(sqlist **top,int s,int e){ sqlist *p,*tmp原创 2013-03-07 21:01:57 · 4768 阅读 · 0 评论 -
nextday函数程序实现
描述:输入指定日期,输出输入日期的下一天的具体日期;程序实现:#include #include using namespace std;int main(){ string ntime; int tmp; while(1) { cout<< "请输入日期,例如(0712-02-12)" << endl;loop:原创 2013-04-08 13:41:31 · 5624 阅读 · 0 评论 -
机器人登山问题(c++)
描述:登山机器人是一个及富挑战性的高技术密集型科学研究项目,它为研究发展多智能体系统和多机器人之间的合作与对抗提供了生动的研究模型。登山机器人可以携带有限的能量。在登山过程中,登山机器人需要消耗一定能量,连续攀登的路程越长,其攀登的速度就越慢。在对m种不同类型的机器人进行性能测试时,测定出每个机器人连续攀登1,2,…,n米所用的时间。现在要对这m个机器人进行综合性能测试,举行机器人接力连续原创 2013-04-08 13:38:04 · 3686 阅读 · 0 评论 -
Boost.Asio的使用技巧
基本概念Asio proactorI/O服务work类run() vs poll()stop()post() vs dispatch()buffer类缓冲区管理I/O对象socket信号处理定时器strand参考最近尝试使用了一下Boost.Asio,不知道是否因为各大公司都有自己相对成熟的网络库的缘故,网络上Asio相关的资料实在不多,而且很多翻来覆去转载 2016-08-21 19:01:54 · 5120 阅读 · 0 评论