c++
文章平均质量分 68
svdalv
这个作者很懒,什么都没留下…
展开
-
leetcode167. Two Sum II - Input array is sorted
网址url:https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/Given an array of integers that is alreadysorted in ascending order, find two numbers such that they add up to a specific target...原创 2019-03-09 14:36:39 · 121 阅读 · 0 评论 -
C++中静态成员变量与静态成员函数
静态成员函数,虚函数,内联函数,构造函数,析构函数等的区别与联系,面试时候经常问。c语言中static的语义。参考点击打开链接1.static变量:1).局部a.静态局部变量在函数内定义,生存期为整个源程序,但作用域与自动变量相同,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,但不能使用它。b.对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0原创 2016-08-16 23:30:16 · 598 阅读 · 0 评论 -
obj,lib,dll,exe
原作者地址:http://www.cnblogs.com/dongzhiquan/archive/2010/08/18/1994576.html obj,lib,dll,exe的关系 lib是和dll对应的。lib是静态链接库的库文件,dll是动态链接库的库文件。 所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行你的exe的转载 2016-05-19 10:56:30 · 267 阅读 · 0 评论 -
leetcode15.3Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:Elements in a triplet (a,b,c)原创 2016-04-21 15:59:55 · 292 阅读 · 0 评论 -
leetcode12.IntegerToRoman&&RomanToInteger
1.Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.本题目主要讲解罗马数字与十进制数字的转化。第一个为给定一个十进制数字,转化为罗马数字。先了解一下罗马数字的格式。1~9: {"I", "II",原创 2016-04-21 14:41:17 · 315 阅读 · 0 评论 -
leetcode11.ContainerWithMostWater
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two原创 2016-04-20 11:12:54 · 296 阅读 · 0 评论 -
使用typedef定义函数指针
关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用。//形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); }转载 2016-05-25 13:23:51 · 516 阅读 · 0 评论 -
leetcode10.RegularExpressionMatching
'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the entire input string (not partial).The function prototype should be:bool isMatch原创 2016-04-17 17:20:17 · 343 阅读 · 0 评论 -
leetcode125.ValidPalindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.For example,"A man, a plan, a canal: Panama" is a palindrome."race a car" is not a原创 2016-03-29 10:45:55 · 324 阅读 · 0 评论 -
浅谈strtok函数的使用心得
经常使用strtok函数进行文本操作,其实他是一个很好用的函数,很方便,能够简单的实现一行文本的切分操作,总结一下使用心得。函数原型char* strtok(char* s,const char* delim)首先strtok有两个参数,第一个参数是要操作的数据的地址或称为指针,通常是通过fget(buff,length(buff),p)函数来获取的,这里buff就是char* s,本人经转载 2016-03-28 21:18:31 · 303 阅读 · 0 评论 -
虚函数表(vtbl)与虚函数表指针(vptr)
类的虚函数表是一块连续的内存,每个内存单元中记录一个JMP指令的地址 注意的是,编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。类的每个虚成员占据虚函数表中的一行。如果类中有N个虚函数,那么其虚函数表将有N*4字节的大小。 虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主转载 2016-08-06 15:28:39 · 589 阅读 · 0 评论 -
memset函数解析
前段项目中发现一个问题,程序总是在某个dynamic_cast进行动态转换时出异常,查了半天才发现问题原来是出在memset的使用上,虽然问题本身显而易见,但当处于几十万行代码量级中时,就变得不太那么容易定位了。本文归纳了下使用memset几个需要注意的地方,虽然内容很简单,但也希望对大家有所帮助。1. memset是以字节为单位,初始化内存块。当初始化一个字节转载 2016-09-02 21:33:31 · 356 阅读 · 0 评论 -
C++中引用的研究
1在类中定义引用变量, 必须要在初始化列表中初始化该成员变量。必须对任何 const 或引用类型成员以及没有默认构造函数的类类型的任何成员使用初始化式。比如:#include using namespace std;class A{private: int &a;public: int n; A(int k):a(n){ n=k; //a原创 2016-08-12 16:07:36 · 304 阅读 · 0 评论 -
leetcode169. Majority Element
题目链接:https://leetcode.com/problems/majority-element/题目描述:Given an array of sizen, find the majority element. The majority element is the element that appearsmore than⌊ n/2 ⌋times.You may a...原创 2019-03-09 13:16:37 · 120 阅读 · 0 评论 -
leetcode976. Largest Perimeter Triangle
url:https://leetcode.com/problems/largest-perimeter-triangle/description:Given an arrayAof positive lengths, return the largest perimeter of a triangle withnon-zero area, formed from 3 of these...原创 2019-03-02 17:49:11 · 188 阅读 · 0 评论 -
C++11笔记
1.增加了新类型,long long ,unsigned long long (64) char16_t ,char32_t2.原创 2017-08-25 16:51:54 · 230 阅读 · 0 评论 -
如何判断链表是否有环
主要包括如何判断有环,环的长度,环的起点等问题。1:如何判断链表有环,可以设置两个指针,一个每次走两步,一个每次走一步,跟再操场上跑步一样,如果两个指针可以相遇,则说明成环了。http://www.cnblogs.com/xudong-bupt/p/3667729.html原创 2017-01-31 11:13:44 · 261 阅读 · 0 评论 -
c++标准库sstream的用法
库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。注意,使用string对象来代替字符数组。这样可以避免缓冲区溢出的危险。而且,传入参数和目标对象的类型被自动推导出来,即使使用了不正确的格式化符也没有危险。istringstream的用法#inclu原创 2016-12-10 13:53:13 · 20442 阅读 · 1 评论 -
STL中容器的迭代器在什么情况下会失效?
原文地址:原文地址迭代器(iterator)是一个可以对其执行类似指针的操作(如:解除引用(operator*())和递增(operator++()))的对象,我们可以将它理解成为一个指针。但它又不是我们所谓普通的指针,我们可以称之为广义指针,你可以通过sizeof(vector::iterator)来查看,所占内存并不是4个字节。 首先对于vector而言,添加和删除操作转载 2016-10-25 20:39:27 · 1262 阅读 · 0 评论 -
c++中map和pair
MAP 和PAIR 结构原创 2016-09-26 22:32:39 · 1014 阅读 · 0 评论 -
c++中vector的用法详解
原文地址:点击打开链接vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include以包含所需要的类文件vector 还有原创 2016-09-26 22:25:13 · 448 阅读 · 0 评论 -
C++中的设计模式之单例模式
单例的目的:保证一个类只有单一的实例,也就是说你无法通过new来创建这个类的一个新实例。单例的好处:当一个对象在程序内部只能有一个实例的时候,它可以保证我们不会重复创建,而是始终指向同一个对象。Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问。代码如下:#in转载 2016-09-20 21:37:50 · 248 阅读 · 0 评论 -
strncmp函数
函数原型:extern int strcmp(char *str1,char * str2,int n)参数说明:str1为第一个要比较的字符串,str2为第二个要比较的字符串,n为指定的str1与str2的比较的字符数。 所在库名:#include 函数功能:比较字符串str1和str2的前n个字符。 返回说明:返回整数值:当str1str2时转载 2016-03-28 21:17:25 · 446 阅读 · 0 评论 -
leetcode119.Pascal'sTriangleII
Given an index k, return the kth row of the Pascal's triangle.For example, given k = 3,Return [1,3,3,1].Note:Could you optimize your algorithm to use only O(k) extra space?第一种方法就是直原创 2016-03-27 22:52:34 · 306 阅读 · 0 评论 -
leetcode118. Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5,Return[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]其实是求杨辉三角的算法,可以看出每一行的数据是上原创 2016-03-27 22:08:08 · 287 阅读 · 0 评论 -
leetcode111.MinimumDepthofBinary Tree
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.解题思路:采用递归的方法来解决这个问题,其实递归可以解决的问题都可以原创 2016-03-17 21:06:16 · 344 阅读 · 0 评论 -
反向迭代器(rbegin,rend)
C++ primer (中文版第四版)第273页9.3.2 begin和end成员 begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一转载 2016-03-17 20:47:38 · 227 阅读 · 0 评论 -
string和stringstream用法总结
一、stringstring 是 C++ 提供的字串型態,和 C 的字串相比,除了有不限长度的优点外,还有其他许多方便的功能。要使用 string, 必須先加入这一行:#include 接下來要宣告一个字串变量,可以写成:string s;我们也可以在宣告的同时让它设成某个字串:string s="TCGS";而要取得其中某一個字元,和传统C 的字串一樣是用 s[i转载 2016-02-19 10:53:58 · 380 阅读 · 0 评论 -
leetcode20.ValidParentheses
原题如下:Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets must close in the correct order, "()" and "()[]{}" are all val原创 2016-01-30 21:12:57 · 327 阅读 · 0 评论 -
C++中vector详细用法说明
一直用vector,却没有好好的总结学习一下,今天在这里总结一下。1. 在C++中的详细说明vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。2. 使用vector必转载 2016-01-28 16:41:54 · 510 阅读 · 0 评论 -
c++中explicit关键字的使用
explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上。 * explicit 关键字作用于单个参数的原创 2016-01-11 11:32:05 · 359 阅读 · 0 评论 -
C++中explicit关键字解释
在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性转载 2015-12-02 23:04:45 · 281 阅读 · 0 评论 -
KMP算法进行字符串匹配
推荐几篇关于KMP算法的几个不错的文章,感谢原作者http://blog.csdn.net/joylnwang/article/details/6778316http://blog.csdn.net/joylnwang/article/details/6778316http://www.cnblogs.com/jingmoxukong/p/4343770.html#commentfor转载 2016-01-17 22:57:06 · 221 阅读 · 0 评论 -
c++经典开发源码
在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下 用你喜欢的编译器 重新编译即可经典的C++库 STLport-------SGI STL库的跨平台可移植版本,在以前有些编译器离符合 标准比较远的情况下 那时还是有用的,当然目前vc71已经比较接近标准了, 故目前不怎么用它了。 Boo转载 2016-01-16 21:57:46 · 1789 阅读 · 0 评论 -
一步一图一代码,一定要让你真正彻底明白红黑树
一步一图一代码,一定要让你真正彻底明白红黑树 作者:July 二零一一年一月九日-----------------------------本文参考:I、 The Art of Computer Programming Volume III、 Introduction to Algorithms, Second EditionIII、The Annotate转载 2016-03-30 10:27:08 · 292 阅读 · 0 评论 -
Dijkstra算法
戴克斯特拉算法(Dijkstra’s algorithm)是由荷兰计算机科学家艾兹赫尔·戴克斯特拉提出。迪科斯彻算法使用了广度优先搜索解决非负权有向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知。该算法的输入包含了一个原创 2016-02-20 14:34:37 · 416 阅读 · 0 评论 -
二叉树的遍历(C++)版
看了一篇博客,感觉不错,在这里感谢一下原作者,自己顺手复习一下二叉树的遍历。http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.htmlhttp://www.seanyxie.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E4%B8%89%E7%A7%8D%E9%81%8D%E5转载 2016-02-21 22:14:46 · 439 阅读 · 0 评论 -
当指针指向一个字符串
1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符。如在代码中写"abc",那么编译器帮你存储的是"abc\0"。2. "abc"是常量吗?答案是有时是、有时不是。不是常量的情况:"abc"作为字符数组初始值的时候就不是,如:char str[] = "abc";因为定义的是一个字符数组,所以就相当于定义了一些空间转载 2016-03-27 20:38:31 · 1570 阅读 · 1 评论 -
leetcode101.SymmetricTree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree is symmetric: 1 / \ 2 2 / \ / \3 4 4 3But the f原创 2016-03-10 22:30:10 · 380 阅读 · 0 评论 -
vector和list区别【转】
stl提供了三个最基本的容器:vector,list,deque。vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。l转载 2016-02-26 10:37:08 · 250 阅读 · 0 评论