自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 string类用法

构造函数:  std::string s0 ("Initial string");  // constructors used in the same order as described above:  std::string s1;  std::string s2 (s0);  std::string s3 (s0, 8, 3);//注意位置信息使用的是常量,不是迭代器。  s...

2018-09-07 11:55:22 332

原创 STL容器用法——vector

template < class T, class Alloc = allocator<T> > class vector;//一般模板构造函数: std::vector<int> first; // empty vector of ints std::vector<int&gt...

2018-09-06 15:47:35 268

转载 二叉树的前中后序遍历(递归与非递归)

/**递归方式遍历**///先序递归遍历void preOrder(Node * root){ if (root != nullptr) { visit(root); preOrder(root->left); preOrder(root->right); }}//中序递归遍历void inOrder(Node * root){ if (root !...

2018-09-04 15:15:01 374

原创 队列和栈

1. 循环队列的实现:在循环队列中,我们使用一个数组和两个指针(head 和 tail)。 head 表示队列的起始位置,tail 表示队列的结束位置。class MyCircularQueue {private: vector<int> data; int head; int tail; int size;public: /** ...

2018-08-27 20:15:01 236

原创 计算排列组合C(n,k)

通过归纳法可得:C(n,k)=C(n-1,k-1)+C(n-1,k)所以通过数组填表可以得到一个表格,其值代表组合数。//计算排列组合C(n,k)=C(n-1,k-1)+C(n-1,k)int c[15][15] = { 0 };void init(){ c[0][0] = 1; for (int i = 1; i < 15; ++i) { c[i][0] = 1;...

2018-08-27 11:06:25 9502

原创 链表

1.单链表定义:别忘构造函数,struct与class无异。// Definition for singly-linked list.struct SinglyListNode { int val; SinglyListNode *next; SinglyListNode(int x) : val(x), next(NULL) {}};时间复杂度:查找O(...

2018-08-25 17:14:55 298

转载 图/树——深度优先搜索(DFS)

转载深度优先搜索(DFS, Depth First Search)是一个针对图和树的遍历算法。早在19世纪就被用于解决迷宫问题。对于下面的树而言,DFS方法首先从根节点1开始,其搜索节点顺序是1,2,3,4,5,6,7,8(假定左分枝和右分枝中优先选择左分枝)。 DFS的实现方式相比于BFS应该说大同小异,只是把queue换成了stack而已,stack具有后进先出LIFO(Last I...

2018-08-14 19:23:07 14657

转载 图/树——宽度优先搜索(BFS)

转载宽度优先搜索(BFS, Breadth First Search)是一个针对图和树的遍历算法。发明于上世纪50年代末60年代初,最初用于解决迷宫最短路径和网络路由等问题。对于下面的树而言,BFS方法首先从根节点1开始,其搜索节点顺序是1,2,3,4,5,6,7,8。 BFS使用队列(queue)来实施算法过程,队列(queue)有着先进先出FIFO(First Input First...

2018-08-14 19:18:13 17963 1

原创 0-1背包问题

此题在华为笔试中出现次数很多。输入:价值:6,3,5,4,6重量:2,2,6,5,4背包容量:10输出:偷到的总价值:15#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ int value[...

2018-08-09 16:37:36 187

原创 C++ 二维动态数组创建及初始化

两种方式:yi 一是通过new-deletechua创建。二是通过vector创建。注意两者的初始化区别。只能把所有的值初始化为同一个值。// temp-test.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <vector>using namespac...

2018-07-25 19:20:36 9576 1

原创 C++类实现

1. 运算符重载可以通过非成员函数(友元函数)和成员函数进行重载。但是赋值=、函数调用()、下标运算[]、指针访问成员->只能使用成员函数进行重载。类声明:class Time{...Time operator+(const Time & t) const;}类方法实现:Time Time::operator+(const Time & t) const{...}使用:A +...

2018-07-16 11:42:44 530

原创 C++存储空间

自动存储:在函数内部定义的常规变量使用自动存储空间,被称为自动变量,这意味着它们在所属的函数被调用时自动产生,在该函数结束时消亡。自动变量通常存储在栈中。静态存储:静态存储是整个程序执行期间都存在的存储方式。一种是在函数外面定义它,一种是在声明变量时使用关键字static。注意区分其作用域和生命周期。动态存储:new和delete运算符。它们管理了一个内存池,在C++中被称为自由存储空间或堆。例如...

2018-07-13 11:24:51 585

原创 cin相关

cin包含在iostream头文件中,它是istream类的一个对象。cin使用空白(空格、制表符、换行符)来确定字符串的结束位置,这意味着cin在获取字符数组输入时只读取一个单词。 其类成员函数getline()和get():两函数都是读取一行,直到到达换行符。然而getline()将丢弃换行符,而get()将换行符保留在输入序列中。用例:cin.getline(name...

2018-07-13 09:59:07 701

转载 Linux启动过程简析

(转载自Linux公社)Linux开机启动过程浅析Introduction开机启动过程分为以下6个步骤,分别是BIOS, MBR, GRUB, Kernel, Init, RunLevel, RunDefinitionBIOS按下电源开关那一刻,开始加载BIOS,并且执行MBR(Master Boot Record)BIOS表示基本输入输入系统(Basic Input/Output System)...

2018-07-11 10:10:46 185

原创 二分查找

二分查找时间复杂度是O(logn),循环的方法时间复杂度是O(n)。循环实现:/循环法二分查找.数组必须有序int binarySerachA(int * arr, int key, int length) { int left = 0; int right = length - 1; int middle = 0; while (left <= right) { middle...

2018-06-29 18:39:14 179

原创 C++实现各种排序(快速、归并、冒泡、选择、堆排序)

1. 快速排序使用递归的方法。选取数组中任意一个值key作为比较(通常选取第一个值),然后数组先从后往前寻找第一个小于key的值,再从前往后寻找第一个大于key的值,交换这两个值的位置,继续前面的寻找。然后把第一个值(key)交换到两个子数组中间位置。现在两子数组,左边都小于key,右边都大于key。左右子数组再进行递归。时间复杂度平均O(nlogn),最坏是Olog(n^2).//...

2018-06-29 11:18:41 551

原创 找出二叉树中序遍历序列的下一个节点

/*struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struct TreeLinkNode *next; TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL)...

2018-06-18 18:06:49 1013

原创 前序遍历和中序遍历来重构二叉树

指针用法: struct TreeNode {      int val;      TreeNode *left;      TreeNode *right;      TreeNode(int x) : val(x), left(NULL), right(NULL) {}  }; TreeNode* ConstructCore(int*...

2018-06-18 16:47:59 303

转载 C++中const 修饰指针、函数形参

1. const通常用来修饰变量不能够更改值,多用来保护变量或参数。 [cpp] view plain copyconst int b = 100;   //b = 0;错误  2. 当const修饰指针时,由于const的位置不同,它的修饰对象会有所不同。 如下代码,int *const p2中const修饰p2的值,所以理解为p2的值不可以改变,即p2只能指向固定的一个...

2018-06-13 21:40:18 1630

转载 深入理解C++中private public protected

转载自:https://www.jb51.net/article/54224.htm这里我们首先要明白下面几点。1.类的一个特征就是封装,public和private作用就是实现这一目的。所以:用户代码(类外)可以访问public成员而不能访问private成员;private成员只能由类成员(类内)和友元访问。2.类的另一个特征就是继承,protected的作用就是实现这一目的。所以:prote...

2018-06-12 20:58:54 181

原创 Linux中使用dd制作文件的.img

du -sh linpack //先看看需要制作的源文件夹大小,假如15Mdd if=/dev/zero of=new_img.img bs=1M count=20 //生成20M的文件mkfs.ext3 new_img.img //格式化mount new_img.img /mnt/new  //挂载cp -r linpack /mnt/new //复制或者移动

2018-06-12 20:16:11 6890

转载 C / C++ 中static 关键字用法

总结来源:https://www.cnblogs.com/jhmu0613/p/7131997.htmlstatic的作用主要有两种:第一个作用是限定作用域;第二个作用是保持变量内容持久化;c语言中static的用法:1、全局静态变量:  用法:在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。 static int temp;  内存中的位置:静态存储区,在整个程序运行期间一...

2018-06-12 19:56:31 182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除