c++
文章平均质量分 81
turryiven
这个作者很懒,什么都没留下…
展开
-
sizefof与strlen对比
Sizeof与Strlen的区别与联系一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分...转载 2018-07-09 09:23:41 · 412 阅读 · 0 评论 -
STL 容器删除元素的陷阱
在网上看到有人总结如下两条:1. 对于节点式容器(map, list, set)元素的删除,插入操作会导致指向该元素的迭代器失效,其他元素迭代器不受影响2. 对于顺序式容器(vector,string,deque)元素的删除、插入操作会导致指向该元素以及后面的元素的迭代器失效https://www.cnblogs.com/Yogurshine/p/4030728.html...转载 2018-05-11 20:55:19 · 388 阅读 · 0 评论 -
【C++】STL——容器适配器
1、stack2、priority_queue #include<queue>https://blog.csdn.net/cstopcoder/article/details/18949583(1)基础介绍priority_queue 优先队列,其底层是用堆来实现的。模板声明带有三个参数:priority_queue<Type, Container, Func...转载 2018-04-27 14:40:24 · 191 阅读 · 0 评论 -
负数在内存中的存储形式——补码
1、数在内存中都已补码形式存在https://blog.csdn.net/u012511672/article/details/51724272对于一个负数-x,它的二进制表示(补码)求法如下:求出-x的相反数x的原码对x的原码进行取反运算将取反运算的结果+1”绕回处理“。对于大多数语言来说,char类型的有效范围是-128~127,那么如果我们把128这个超过了char类型表示范围的数赋值给一个...转载 2018-04-27 16:13:27 · 13621 阅读 · 5 评论 -
剑指42:连续子数组的最大和——动态规划的思想
题目描述一维模式识别中,常常需要计算连续子向量的最大和,例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。(子向量的长度至少是1),返回最大和 遍历加和 一旦加和过程中出现变小的情况 就重新选择起点继续加和 选择一个最小的数做初始化 负数在内存中的补码 是用原码取反加一完成 32位有符号最...原创 2018-04-27 16:22:45 · 268 阅读 · 0 评论 -
STL—unordered_map 哈希表 与map对比
1、unordered_map介绍https://blog.csdn.net/hk2291976/article/details/51037095介绍1 特性2 Hashtable和bucket模版1 迭代器功能函数1 构造函数12示例代码2 容量操作21 size22 empty3 元素操作31 find32 insert33 at34 erase35 clear36 swap37 示例代码4 ...转载 2018-05-06 15:41:41 · 1027 阅读 · 0 评论 -
二叉树中两个节点的最近公共祖先节点
题目:求二叉树中两个节点的最近公共祖先节点https://blog.csdn.net/xyzbaihaiping/article/details/52122885一、该二叉树为搜索二叉树搜索二叉树的特点:任意一个节点的左子树的所有节点值都比该节点的值小,其右子树的所有节点值都比该节点的值大。解决该问题方法:从树的根节点开始和两个节点作比较,如果当前节点的值比两个节点的值都大,则这两个节点的最近公共...转载 2018-05-07 20:46:13 · 2223 阅读 · 0 评论 -
剑指53:数组在排序数组中出现的次数——折半查找——拓展(2)(3)
折半查找专场——————————————————————————————————————题目描述1统计一个数字在排序数组中出现的次数。思路:通过折半查找找到k开始和结束的位置。O(logn)class Solution {public: int GetFirstK(vector<int> data,int k,int start,int end){ //折半查...原创 2018-05-08 10:06:12 · 199 阅读 · 0 评论 -
编码:Unicode与UTF-8
Unicode与UTF-8互转(c语言和lua语言)https://www.cnblogs.com/lxjshuju/p/6812387.htmlUincode中文2字节 UTF-8中文3字节1. 基础1.1 ASCII码我们知道, 在计算机内部, 全部的信息终于都表示为一个二进制的字符串. 每个二进制位(bit)有0和1两种状态, 因此八个二进制位就能够组合出 256种状态, 这被称为一个字节(...转载 2018-05-24 13:06:31 · 372 阅读 · 0 评论 -
排序算法—归并排序
https://www.cnblogs.com/chengxiao/p/6194356.html归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之 可以看到这种结构很像...转载 2018-05-07 15:32:15 · 120 阅读 · 0 评论 -
[c++] vector中insert()的用法详解
iterator insert( iterator loc, const TYPE &val ); void insert( iterator loc, size_type num, const TYPE &val ); void insert( iterator loc, input_iterator start, input_iterator end ); insert()...转载 2018-06-21 14:39:48 · 111597 阅读 · 0 评论 -
[C++] STL 迭代器失效问题
https://blog.csdn.net/codercong/article/details/52065130之前看《C++ Primier》的时候,也解到在顺序型窗口里insert/erase会涉及到迭代器失效的问题,并没有深究。今天写程序的时候遇到了这个问题。1 莫名其妙的Erase 最初我的程序是酱紫的,别说话,我知道这样是有问题的,可这样是最直观的想法 int arr[]={0...转载 2018-06-21 14:42:58 · 344 阅读 · 0 评论 -
C++的cout输出小数的精度控制
c++ cout 输出小数的精度cout.flags(ios::fixed);cout.precision(4); //设置输出精度printf("%.4f\n",XXX); 精度输出float : 单精度浮点数double : 双精度浮点数两者的主要区别如下: 01.在内存中占有的字节数不同 单精度浮点数在机内存占4个字节 双精度浮点数在机内存占8个字节 02.有效数字位数不同 ...转载 2018-06-28 15:12:11 · 13840 阅读 · 0 评论 -
算法-Trie树 -字典树
https://www.cnblogs.com/TheRoadToTheGold/p/6290732.html1、单词是否出现/*查询单词是否整体出现 trie tree的储存方式:将字母储存在边上,边的节点连接与它相连的字母 trie[rt][x]=tot:rt是上个节点编号,x是字母,tot是下个节点编号*/#include<cstdio>#include<io...转载 2018-07-04 15:27:25 · 202 阅读 · 0 评论 -
C++设计模式——单例模式
1、单例模式转载自:https://blog.csdn.net/hj605635529/article/details/70172842单例模式的适用场景(1)系统只需要一个实例对象,或者考虑到资源消耗的太大而只允许创建一个对象。(2)客户调用类的单个实例只允许使用一个公共访问点,除了该访问点之外不允许通过其它方式访问该实例 (就是共有的静态方法)。单例模式的扩展允许可变数目的实例,使用与单例控制...转载 2018-07-11 18:30:01 · 134 阅读 · 0 评论 -
剑指41:数据流中的中位数
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。用最大堆最小堆方法 插入O(logn) 在队头查找中间数O(1)第一次: 用最大优先队列(默认vector,less)作为最大堆实现 最小优先队列(仿比较函数great...原创 2018-04-26 21:05:42 · 159 阅读 · 0 评论 -
置顶:待整理 STL
首先来看一看int、long、long long的取值范围int 所占字节数为:4 表示范围为:-2147483648~2147483647short int 所占字节数为:2 表示范围为:-32768~+32767long 所占字节数为:4 表示范围为:-214...转载 2018-04-26 20:22:14 · 196 阅读 · 0 评论 -
算法-二叉搜索树和平衡二叉树
红黑树介绍http://www.cnblogs.com/skywang12345/p/3245399.html红黑树和哈希表的对比https://blog.csdn.net/ljlstart/article/details/51335687c++中set的用法https://blog.csdn.net/yas12345678/article/details/52601454转载自https://b...转载 2018-04-26 14:57:29 · 208 阅读 · 0 评论 -
sizeof(数组名)与sizeof(指针变量)
在做这道题时:32位环境下,int *p=new int[10];请问sizeof(p)的值为()A、4 B、10 C、40 D、8我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40了,结果正确答案为A,只是指针p占的空间。因此写段代码测试一下:[cpp] view plain copy #incl...原创 2017-10-24 21:02:11 · 3281 阅读 · 0 评论 -
c语言中数组长度的计算
一维数组 计算数组的长度: sizeof(数组名) 得到这个数组占用内存的总长度 公式: sizeof(数组名) / sizeof(数组类型);二维数组 二维数组计算列数: 每行的总长度 / 元素占用的字节转载 2017-10-24 21:07:32 · 1282 阅读 · 0 评论 -
c primer plus 第十章编程题
第一题:修改程序清单10.7中的程序rain,使它不使用数组下标,而是使用指针进行计算(程序中仍然需要声明并初始化数组)。解:代码如下:#include #define MONTHS 12#define YEARS 5int main(void){ const float rain[YEARS][MONTHS] = { {4.3,4.3,4.3,3.转载 2017-10-26 16:20:38 · 353 阅读 · 0 评论 -
C单链表时遇到的关于指针的指针 和 指针 传参之间的问题
在看这部分代码时,很疑惑list_add时为什么传 **head而不是*head进去后来改成*head进行打印后明白这个问题和最初的传参void swap(int a,int b)与void swap(int *a,int *b)的意思一致list_add中需要保证将List_head始终指向头结点,而如果用*head传参进入,是将List_head本身的值(作为指针的值)传入=将List_hea...原创 2018-03-06 20:22:45 · 1007 阅读 · 0 评论 -
c++ 不建议使用字符串常量到 char*的转换
转载自:https://blog.csdn.net/haoel/article/details/1395358个人总结: char* p = "test";是一个字符串字面量 该指针被放置在全局的只读存储区(const),一旦通过该指针对内存写就会出错。 在声明字符串字面量时,应该加上const. const char *p = "test";一下是转载内容:我相信,使用C...转载 2018-04-10 16:04:47 · 6047 阅读 · 1 评论 -
#pragma once和#ifdef限定编译的区别
转自百度百科 #pragma once 这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次 #pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。 #pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现...转载 2018-04-10 21:28:18 · 241 阅读 · 0 评论 -
C语言中const关键字的用法
http://blog.csdn.net/xingjiarong/article/details/47282255关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定有它的合理...转载 2018-04-22 14:40:54 · 165 阅读 · 0 评论 -
C++ 引用 介绍与指针的比较
转自:https://blog.csdn.net/xiao__tian__/article/details/51814617C++中的引用:引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。其格式为:类型 &引用变量名 = 已...转载 2018-04-22 17:12:51 · 155 阅读 · 0 评论 -
算法-全排列:递归输出/字典序输出/冒泡排序
递归不查重的全排列输出https://blog.csdn.net/sinat_36215255/article/details/78197129输入一个数字 输出从1至该数字的所有全排列的结果剑指offer38同款 #include <cstdio> #include<cstring> #include<algorithm> ...转载 2018-04-23 15:11:46 · 1459 阅读 · 0 评论 -
c++ string和char互相转换
https://www.cnblogs.com/devilmaycry812839668/p/6353807.html第一部分:将 char * 或者 char [] 转换为 string可以直接赋值,转换。 第二部分:将 string 转换为 char * 或者 char [] string 是c++标准库里面其中一个,封装了对字符串的操作 把s...转载 2018-04-20 16:15:52 · 4199 阅读 · 0 评论 -
剑指37:序列化二叉树
请实现两个函数,分别用来序列化和反序列化二叉树Tips:选择先序遍历 序列化时 先用string存‘#’和‘数,’其中数需要用to_string()函数将Int转String 用c_str()将string转char 反序列化时 需要用char**对遍历的位置进行修改(当读到#时 只return不调用 ...原创 2018-04-20 16:33:11 · 203 阅读 · 0 评论 -
STL:排序函数sort()
作者: AlvinZH出处: http://www.cnblogs.com/AlvinZH/1.sort使用:#include <algorithm> using namespace std;作用:排序时间复杂度:n*log2(n)实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此外,它还结合了插入排序和推排序。系统会根据你的数据形式和数据量自动选择合适的...转载 2018-05-02 20:15:59 · 249 阅读 · 0 评论 -
C 快排qsort()
原帖出处:http://www.cnblogs.com/syxchina/archive/2010/07/29/2197382.htmlhttps://blog.csdn.net/b2utyyomi/article/details/51506001qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int ...转载 2018-05-02 20:22:22 · 1974 阅读 · 0 评论 -
算法-快速排序
可参考https://www.cnblogs.com/sdlwlxf/p/5131793.html0、一趟快排 单向 最简洁int partition(int a[], int p, int r){ int x = a[r]; int i = p; int j = p; for (; j < r; ++j) if (a[j] < x) ...原创 2018-04-25 14:44:33 · 189 阅读 · 0 评论 -
32位和64位系统下 数据结构区别
64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂);可以访问大型数据库。本文介绍的是64位下C语言开发程序注意事项。1. 32 位和 64 位C数据类型32和64位C语言内置数据类型,如下表所示:上表中第一行的大写字母和数字含义如下所示:I表示:int类型L表示:long类型P表示:pointer指针类型32表示:32位系统64表示64位...转载 2018-05-03 17:29:19 · 1851 阅读 · 0 评论 -
C++设计模式——观察者模式
https://blog.csdn.net/u012611878/article/details/72859047观察者模式包括一下角色:Subject: 目标ConcreteSubject: 具体目标Observer: 观察者ConcreteObserver: 具体观察者观察者模式特点1、将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关相关对象间的一致性。我们不希...转载 2018-07-12 19:46:11 · 277 阅读 · 0 评论