C/C++
文章平均质量分 87
方克明
这个作者很懒,什么都没留下…
展开
-
【动态规划】01背包问题
问题描述有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?为方便讲解和理解,下面讲述的例子均先用具体的数字代入,即:eg:number=4,capacity=8i(物品编号) 1 2 3 4 w(体积) 2 3 4 5 v(价值) 3 4 5 6 总体思路...原创 2020-02-01 16:28:13 · 1475 阅读 · 0 评论 -
进程和线程的区别
简而言之,一个程序至少有一个进程,一个进程至少有一个线程。 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口,顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线...原创 2017-10-17 10:00:48 · 511 阅读 · 0 评论 -
动态规划基本入门
动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面我就通过一个...原创 2018-03-23 15:36:44 · 225 阅读 · 0 评论 -
C++10个关键词
1、constconst本意是“不变的,常量”。C语言:(1)定义该变量为只读变量,分配内存【这里的常量只是编译器属性】;(2)const与指针的组合:常量指针、指针常量、常量指针常量;C++中:(1)定义该变量为只读变量,在没有取地址&和加extern前和宏#define作用一样,没有内存空间【常量折叠】;(2)类中常量需要再初始化列表里初始化,还有引用&;static cons...原创 2018-04-16 15:30:35 · 628 阅读 · 0 评论 -
链表
在讨论链表(linked-list)之前,需要明确几个概念:线性表(顺序表, list, linear list), 数组(array),链表(linked-list)。线性表:在中文里,线性表也叫作顺序表。在英文中,它称为list, linear list等。它是最基础、最简单、最常用的一种基本数据结构,线性表总存储的每个数据称为一个元素,各个元素及其索引是一一对应的关系。线性表有两种存储方式:...原创 2018-04-23 20:15:15 · 366 阅读 · 0 评论 -
数组和指针
数组:数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。1.区分:int arr[5] = {}; arr 0x00defde4 {-858993460, -858993460, -858993460, -858993460...原创 2018-04-24 16:46:37 · 901 阅读 · 0 评论 -
helloworld和大小端
”HelloWorld”:include<stdio.h>int main(){ printf(“helloworld\n”); return 0;}(1).#include//头文件:其作用是包含我们所需要的库函数 printf();include“max.h”//”“从自己写的文件中找到max.h(2).对于 main 函数来说,是所有函数的入口...原创 2018-04-24 20:57:37 · 527 阅读 · 0 评论 -
栈和队列
栈(Stack)和队列(Queue)是两种操作受限的线性表。(线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的数据元素数据类型相同并且满足“一对一”的逻辑关系。“一对一”的逻辑关系指的是对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点。)这种受限表现在:栈的插入和...原创 2018-04-25 11:17:54 · 455 阅读 · 0 评论 -
构造函数与析构函数
创建一个对象时,常常需要作某些初始化的工作,例如对数据成员赋初值。注意,类的数据成员是不能在声明类时初始化的。如果一个类中所有的成员都是公用的,则可以在定义对象时对数据成员进行初始化。如:class Time{public : //声明为公用成员hour;minute;sec;};Time t1={14,56,30}; //将t1初始化为14:56:30这种情况和结构体变量的初始化是差不多的,在一...原创 2018-04-21 15:28:58 · 367 阅读 · 0 评论 -
重载
函数重载一、什么是函数重载?函数重载overload是指不同的函数采用相同的函数名,彼此间通过形参列表加以区分。举例:函数名都为distance,但形参列表的个数不同;[cpp] view plain copy#include <iostream> #include <cmath> using namesapce std; double distance(float,...原创 2018-04-21 15:38:22 · 273 阅读 · 0 评论 -
多态与虚函数
多态的作用:继承是子类使用父类的方法,而多态则是父类使用子类的方法。在C++中,多态有两种,一种是函数重载,一种是虚函数。函数重载发生在编译的时候,它的函数参数是不一样的。而虚函数是发生在运行的时候,它的函数原型是一样的,依靠的是指针的指向。有一篇非常好的文章介绍多态与虚函数。发一个链接在这里。http://blog.csdn.net/augusdi/article/details/3827100...原创 2018-04-21 15:56:41 · 387 阅读 · 0 评论 -
动态内存分配
动态内存分配常见的内存分配的错误先上一个内存分配的思维导图:便于联想想象,理解:首先我们介绍一下内存分配的方式:1:在静态存储区域中进行分配 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量122:在栈中进行分配 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时,这些存储但愿自动被释放。效率很高...原创 2018-05-04 16:10:26 · 1253 阅读 · 0 评论 -
在线笔试的诀窍
循环输入输出处理常见问题1、为什么需要循环输入输出:通常来说OJ对于每道题里面有.in和.out文件,分别表示测试数据的输入和输出。如果某些编程题的所有数据都只做在一个.in和一个.out中,这样就会变成多组测试了,所以需要提交的代码中循环处理。2、处理方法:其实这个问题可以避免,就是编程题后台每个样例做一组对应的.in和.out文件,这样就变成单组测试,代码就不需要循原创 2017-08-13 21:21:36 · 19001 阅读 · 1 评论 -
网易2017秋招编程题集合
(一)如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两原创 2017-08-12 10:47:43 · 260 阅读 · 0 评论 -
国内C/C++刷题网站汇总
作者:Luau Lawrence链接:https://www.zhihu.com/question/25574458/answer/31175374来源:知乎- Welcome To PKU JudgeOnline 北京大学的Online Judge。POJ上面的题目有点老了,但好处是做的人多,经典算法题多,解题报告也多,适合上手。- ZOJ :: Home 浙江大学的原创 2017-06-18 11:29:37 · 72991 阅读 · 4 评论 -
C语言知识学习笔记
转载出处:http://blog.csdn.net/mbh_1991/article/details/10149805 http://blog.csdn.net/xiahouzuoxin/article/details/11516005 开始本节学习笔记之前,先说几句题外话。其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客。正巧原创 2017-06-08 10:19:32 · 667 阅读 · 0 评论 -
万能头文件 #include<bits/stdc++.h>
经常看人写#include 却不知道是干啥的? #include包含了目前c++所包含的所有头文件对比:#include #include #include #include #include #include #include #include #include string> #include #include #i原创 2017-06-20 20:00:15 · 6562 阅读 · 0 评论 -
C++面试宝典
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之原创 2017-06-20 20:23:53 · 2833 阅读 · 0 评论 -
const 类型详解
const变量有全局的和局部的,C语言中全局的const变量默认为外连接,所以默认都是有内存地址的,c++中全局的const变量默认为内连接,它可以被编译 器放到符号表中作为编译期常量,所以在c中,const int k = 2; int a[k]是非法的,但在c++中是合法的。 这是全局const变量,局部的const变量在C和C++中一视同仁,都是放在函数局部栈中的,把编译原创 2017-06-30 19:22:24 · 984 阅读 · 0 评论 -
C语言基础知识及其几种常用的语句
1.1 软件,程序与计算机语言软件是为完成某些特定功能而编制的一个到多个程序文件的集合。程序是计算机指令的序列,编制程序的工作就是为计算机编制指令序列。人和计算机交流也要用人和计算机都容易接受和理解的语言,这就是计算机语言。1.2 程序语言的发展1.2.1 机器语言计算机的机器语言都是由0和1组成,计算机的所有数据都是由0和1组成。1.2.2原创 2017-06-22 17:20:07 · 2150 阅读 · 0 评论 -
C/C++ 知识点简单总结
原文地址:http://blog.csdn.net/quzhongxin/article/details/488333451. 静态编译与动态编译动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,转载 2017-06-21 10:44:07 · 891 阅读 · 0 评论 -
C语言和C++的不同之处和相同之处
原文来自:http://blog.csdn.net/qq_30125317/article/details/47066675有适当修改,感谢。 一、应用场合C语言:C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性。C++:正是因为有大规模的程序需要去处理转载 2017-06-20 20:40:06 · 6629 阅读 · 0 评论 -
基于C语言的常见排序算法(冒泡,选择,快速)的实现
原文来自于:http://www.cnblogs.com/herbert/archive/2011/01/20/1940392.html 非常感谢!要实现这几种算法的关键是要熟悉算法的思想。简单的说,冒泡排序,就如名字说的,每经过一轮排序,将最大的数沉到最底部。选择排序的思想是将整个数列,分为有序区和无序区。每轮排序,将无序区里的最小数移入到有序区。快速排序的思想是以一个数为中心,通常转载 2017-06-19 09:01:32 · 485 阅读 · 0 评论 -
VC++深入详解学习笔记
原文来自:http://www.cnblogs.com/gaojun/archive/2010/08/15/1800099.html#_Toc269652893感谢博主的分享。Lesson1: Windows程序运行原理及程序编写流程窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用转载 2017-06-15 11:08:12 · 3739 阅读 · 1 评论 -
汇编语言入门
学习汇编前你应该知道的知识 1、汇编需要什么工具和程序,到哪里下载? 目前阶段,汇编程序仅需要两个程序就够了。masm.exe,link.exe。 前者是编译程序,后者是链接程序。另外,为了验证和调试程序,还需要一个程序debug.exe,该程序由windows本身就提供。 将二者下载后,放到某一个目录中(任意目录都可以),考虑到很多命令需要通过键盘原创 2017-08-01 20:55:22 · 50648 阅读 · 10 评论 -
剑指offer重点复习题目
题目(一):二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。[cpp] view plain copy/* struct TreeNode { int val; struct TreeNode *left; str原创 2017-08-12 10:30:04 · 389 阅读 · 0 评论 -
50个C/C++源代码网站
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。添加:http://www.boost.org/1、http://snippets.dzone.com/tag/原创 2017-06-18 11:26:52 · 860 阅读 · 0 评论