
C++
文章平均质量分 67
烟雨流年
这个作者很懒,什么都没留下…
展开
-
2015百度笔试题(算法)
有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现#includeusing namespace std;double searchmin(double*, int, int);int main(){ double L[] = {-10, -5,1,3,9}; doub原创 2015-10-20 17:04:45 · 452 阅读 · 0 评论 -
C++中静态链接库创建与使用
演练:创建和使用静态库 (C++)Visual Studio 2013其他版本此分步演练演示如何创建用于 C++ 应用的静态库(一个 .lib 文件)。 使用静态库是重用代码的一种绝佳方式。 你不必在要求功能的每个应用中重新实现同一例程,而只需将其写入静态数据库一次,然后从应用引用它们即可。 从静态库链接的代码成为了应用的原创 2016-11-24 16:04:53 · 4024 阅读 · 1 评论 -
DLL动态库的创建与使用
演练:创建和使用动态链接库Visual Studio 2005其他版本在本演练中,您将创建一个动态链接库 (DLL),其中包含可供其他应用程序使用的有用例程。使用 DLL 是一种重用代码的绝佳方式。您不必在自己创建的每个程序中重新实现这些例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。本原创 2016-11-24 16:06:59 · 755 阅读 · 0 评论 -
extern的用法
对于变量而言,extern int a,表明将要使用已经定义的一个全局变量aint a,表明定义一个全局变量aextern int a=0 ,表明定义并使用全局变量a;加上extern关键字后可以防止不同程序文件中出现变量重定义的情况。对于函数而言,如果函数声明中带有关键字extern,那么仅说明这个函数可能在别的源文件中定义,这样就可以避免使用“.h”来找到某个函原创 2017-02-15 18:12:40 · 462 阅读 · 0 评论 -
C++类中常量定义
有时我们希望某些常量只在类中有效。由于#define定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用const修饰数据成员来实现。const数据成员的确是存在的,但其含义却不是我们所期望的。const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。 (1)不能在类声明中初始化const数据转载 2017-03-04 12:56:05 · 9384 阅读 · 1 评论 -
MFC概览
1.一个win32程序需要完成以下基本步骤:1.注册窗口类2.创建窗口3.消息获取与分派4.处理消息消息的获取是在一个循环中,可以使用GetMessage()或PeekMessage()来获取消息(两者的区别是,空闲时间的处理)2.当使用vs2013编译器默认生成一个MFC程序时,可以获得一个窗口,但是此时,窗口区域不可编辑,当把CxxView类的父类修改为CEditVie原创 2017-03-09 09:54:11 · 440 阅读 · 0 评论 -
const的使用
const修饰函数参数说明该参数在函数体内不能被修改。const在函数名末尾,常函数(类中)可用于函数重载,常对象使用此函数,非常对象也可使用(不优先使用)const修饰返回值修饰非指针和引用返回值时,此时const无效果,修饰指针返回值时若const在“*”号前面,则表明该指针指向的值不能被改变,接收返回值的参数也应该是const type*类型的变量,若修饰引用那么,该原创 2017-03-13 10:19:07 · 218 阅读 · 0 评论 -
2016,终入江湖
现在距离签完三方已近过去5个月了,找工作已在16年10月份结束,今天突然心血来潮,想要记录一下找工作的经历,多年以后自己再看此文,未尝不是一种珍贵的回忆。(纯粹为了记录找工作的经历,不喜绕道,谢谢!)原普通一本信计(数学)专业,后考研至某985,计院渣硕一枚。默默准备15年7月份进入实验室,实验室是做图像处理的,研一的时候基本上都是帮老师看论文,然后写文档,对程序的编写和程序语言的原创 2017-03-12 17:00:05 · 720 阅读 · 0 评论 -
找出数组中超出总数1/4的数字
#include //上一题的扩展,有3个数字出现次数超过1/4。using namespace std;void Grial(int a[], int n){ if (n <= 3)return; int count1=0, key1=0; int count2=0, key2=0; int count3=0, key3=0; for (int i转载 2016-12-03 16:11:47 · 676 阅读 · 0 评论 -
C++输入
C++中常用的字符串输入输出函数/流有: cin,cin.get(),cin.getline(),getline(cin,str); 其中,cin最常使用,但是,它不能接收空格; cin.get(),可以接收空格,但是需指定字符串缓冲区长度,以换行符作为输入结束标志,且会将换行号符保留在输入流中,为了接收换行符需再次调用cin.get(); cin.getline()也可以接收空格,但是同样原创 2017-05-31 19:08:32 · 344 阅读 · 0 评论 -
bitset的使用
bitset的用法及作用bitset用于对数字的位进行操作,将32位的数字m转换位bitset类型为:bitset var(m);方法操作:1.any():为了测试bitset 对象是否含有被设置为1的位,我们可以使用any()操作当bitset对象的一位或多个位被设置为1 时any()返回true例如,对于bitvec ,如下测试b原创 2017-07-04 22:48:39 · 939 阅读 · 0 评论 -
[编程题] 合唱团
有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗? 输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 i(-50 输出描述:输出一行表示最大的乘积。#include#includeu原创 2016-08-23 21:47:26 · 829 阅读 · 0 评论 -
C++中智能指针的工作原理和简单实现
原文地址:http://www.cnblogs.com/yangshaoning/archive/2012/03/18/cpp_smart_pointer.html智能指针:它的一种通用实现方法是采用引用计数的方法。智能指针将一个计数器与类指向的对象相关联,引用计数跟踪共有多少个类对象共享同一指针。 每次创建类的新对象时,初始化指针并将引用计数置为1; 当对转载 2016-09-10 10:46:56 · 1371 阅读 · 0 评论 -
图的最短路径算法(四)--Bellman-Ford(解决负权边)单源点最短路径
//含有负权边的单源点最短路径//动态规划思想:两点之间的最短路径最多经过n-1边即可到达//那么依次更新经过1条边,2条边,...,n-1条边的最短路径#includeint main(){ int dis[10],bak[10],i,k,n,m,u[10],v[10],w[10],check,flag; int inf=99999999; //读入n和m,n原创 2016-08-29 22:06:15 · 815 阅读 · 0 评论 -
出栈顺序判断
#include#include#include#includeusing namespace std;int main(){ ifstream in("stack.txt"); for (int n, line = 0; in >> n&&n&&in.ignore();) { cout << (line++ ? "\n" : ""); for (string s; g原创 2015-10-16 09:54:36 · 670 阅读 · 0 评论 -
大数相乘与大数相加
// BigNumMulti.cpp : 定义控制台应用程序的入口点。////大数相乘#include#includeusing namespace std;class Solution{public: string BigNumMulti(string s1, string s2) { //不需判断是否含有正负号,这个可以在输入s1,s2时处理 if (s1.原创 2016-03-29 19:14:30 · 509 阅读 · 0 评论 -
最大值最小化
#include#includeusing namespace std;//最大值最小化:对于一个给定正整数序列如1 2 3 2 5 4,将其划分3组,//求解其中使得3个组内的和的最大值最小的划分,其最优划分为1 2 3|2 5|4//结果为7bool fun(vector&num,int m,int grp) //划分的结果值可以小于m{ int s = 0; int原创 2016-05-11 15:53:08 · 909 阅读 · 0 评论 -
并查集
#includeusing namespace std;//朋友圈:假如已知有n个人和m对好友关系(存于r中)。如果两个人是直接或者间接的好友,则认为他们属于一个朋友圈//请写程序求出这n个人里一共有多少个朋友圈//假如:n=5,m=3,r={{1,2},{2,3},{4,5}},表示这里有5个人,1和2是好友,2和3是好友,4和5是好友,则//1,2,3属于一个朋友圈,4,5属于另一个原创 2016-07-25 16:09:29 · 303 阅读 · 0 评论 -
双栈排序
请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers(C++中为vector<int>),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。测试样例:[1,2,3,4,5]返回:[5,4,3,2,1]原创 2016-07-04 20:47:35 · 241 阅读 · 0 评论 -
Bitwise AND of Numbers Range
Given a range [m, n] where 0 For example, given the range [5, 7], you should return 4.给定两个数m和n,返回m和n之间所有的数字相与后的结果1.从m到n顺序相与class Solution {public: int rangeBitwiseAnd(int m, int原创 2016-07-26 17:32:33 · 267 阅读 · 0 评论 -
整数对查找
题目描述请设计一个高效算法,找出数组中两数之和为指定值的所有整数对。给定一个int数组A和数组大小n以及需查找的和sum,请返回和为sum的整数对的个数。保证数组大小小于等于3000。测试样例:[1,2,3,4,5],5,6返回:2class FindPair {public: int countPairs(vector A, int n, i原创 2016-07-20 13:16:50 · 853 阅读 · 0 评论 -
图的最短路径算法(二)-任意节点最短路径
多个节点之间的最短路径#include//依次判断节点i,j之间只允许经过节点1,2,3...n所获得的最短路径//类似于动态规划的思想int main(){ int e[10][10],k,i,j,n,m,t1,t2,t3; int inf=99999999; //将该值作为正无穷 //读入n和m,n表示顶点个数,m表示边的条数 scanf("%d原创 2016-08-29 21:54:56 · 5638 阅读 · 0 评论 -
图的最短路径(一)-两节点间最短路径
深度优先遍历+剪枝 #includeint min=9999999,book[101],n,e[101][101]; //这里用9999999代表正无穷//cur是当前所在城市的编号,dis为当前已经走过路程void dfs(int cur,int dis){ int j; //如果当前走过的路程已经大于之前所找到的最短路,则没有必要再往下尝试了,立即原创 2016-08-29 21:50:30 · 5444 阅读 · 0 评论 -
图的最短路径(三)-单源点最短路径(Dijkstra算法)
给定初始节点,求解从该初始节点出发到达其他节点的最短路径#include//利用邻接表法求解单源点最短路径#includeusing namespace std;int n,m,i;//u,v和w的数组大小要根据实际情况来设置,要比边数m大1int u[100],v[100],w[100];//first和next的数组大小要根据实际情况来设置,firs数组大小要比顶点数n的最大原创 2016-08-29 22:00:22 · 1564 阅读 · 0 评论 -
客户端服务器TCP链接异常状态分析
1.服务器进程终止当客户端和服务器建立连接后,kill服务器进程,此时服务器(子)进程所有打开的描述都被关闭,这导致服务器(子)进程向客户端发送一个FIN,而客户端则响应一个ACK。这是原TCP连接终止的前半部分工作。此时,客户端仍可以向服务器端发送数据(服务器端无法向客户端发送数据,客户接收到FIN仅表示服务器进程已关闭了连接的服务器端,从而不再发生任何数据)。当服务器端TCP接收到原创 2017-09-29 23:00:35 · 3787 阅读 · 0 评论