
C/C++
legend_hua
这个作者很懒,什么都没留下…
展开
-
leetcode32. Longest Valid Parentheses
求有效匹配最长括号,题目要求可以看leetcode32。采用栈的方式求解,思路如下:1、首先定义一个空栈,将-1置为第一个元素;2、从给定的字符串的第一位开始匹配: 2.1、如果当前位为 '(':将当前位置索引压栈; 2.2、如果当前位为 ‘)’:将栈顶元素出栈,如果此时空栈,则将当前位置索引压栈;接下来将当前索引和栈顶元素做差,取当前差值和历史的最大差值作比较,取...原创 2018-08-24 22:03:10 · 213 阅读 · 0 评论 -
正整数的质因子
题目:功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )#include<iostream>using namespace std;void prime_factor(){ long lInput; cin >> lInput; while (lInput != 1) { for (int i...原创 2018-08-21 21:36:14 · 1661 阅读 · 0 评论 -
对齐原则和补齐原则
/ /对齐原则:每一成员需对齐为后一成员类型的倍数// 补齐原则:最终大小补齐为成员类型最大值的倍数在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是: structA{ inta; // 4 shortb; // (4) + 2 = 6 下一元素为 int,需对齐为 4 的倍数, 6 + (2) = 8 intc; ...转载 2018-08-04 12:25:23 · 1701 阅读 · 0 评论 -
字母异位词(anagram)的不同复杂度实现
题目 这是一道微软的面试题,题目是这样的:两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。例如,“silent”和“listen”是字母易位词,而“apple”和“aplee”不是易位词。请定义函数检查两个单词是否是字母易位词。可以假设两个单词字母均为小写。要求算法复杂度尽量低。 看到这个题目,你的第一想法是怎么做? 思路一 首先,最基本的思路,便是检测字符串s1中原创 2017-10-13 15:25:18 · 5392 阅读 · 0 评论 -
static细谈
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数;后者主要应用于类。 1、面向过程设计 1.1、静态全局变量 首先看一下什么是全局变量,正如下面的代码,定义int n 为全局变量,此时该文件中的任意位置都能使用该变量。我们发现全局变量在声明的时候没有初始化,系统会自动初始化为0。#include using n原创 2017-10-10 15:32:52 · 921 阅读 · 0 评论 -
const与指针的那些事
const不但可以设基本数据类型为常量,也可以跟指针产生一点关系。其中const与指针的位置排布不同会产生不同的区别,比如下面的3句你能说出有什么区别吗?const int * p;//形式1int const * p;//形式2int * const p;//形式3下面让我来一一道来它们的来龙去脉。 一、形式1 我们先来看去掉const的形式代表什么意思,很明显,表示p是一个指向int型变原创 2017-10-09 16:41:41 · 234 阅读 · 0 评论 -
C++构造函数简述
构造函数,主要用来创建对象时初始化对象,即为对象成员变量赋初始值。构造函数可以分为无参构造函数、有参构造函数、重载构造函数、默认构造函数。除此之外还有初始化列表、拷贝构造函数。 我们首先写一个Coordinate类,其中包括构造函数(略)、析构函数、数据成员m_ix和m_iy。class Coordinate{public: /******************/ //构造函数原创 2017-10-08 15:49:35 · 596 阅读 · 0 评论 -
C和C++中内存分配和释放使用介绍
C语言和C++都提供了动态内存分配方法,C语言提供的是库函数:malloc、calloc、realloc、free等,而C++语言提供的是运算符:new()、new[]、delete()、delete[]。一、前言C语言中动态存储分配函数头文件malloc.h(ANSI标准建议使用stdlib.h,但很多编译器可能不支持),提供许多函数来实现对内存区域的堆上内存进行管理,主要有: void *ma原创 2017-10-07 22:56:01 · 935 阅读 · 0 评论 -
linux运用vim编写C风格的代码
1、首先在自己的目录下编辑自己的.vimrc vim ~/.vimrc在里面添加下面几行:: filetype indent onset etset ciset shiftwidth=4autocmd FileType make setlocal noexpandtab2、运用vim编写好C代码后,运用下面操作格式化我们的代码1 gg 回到文件的第一行原创 2017-09-01 21:35:53 · 632 阅读 · 0 评论 -
typedef struct和struct的区别
http://blog.youkuaiyun.com/haiou0/article/details/6877718这篇博客关于这个内容写的很不错,值得一看转载 2017-07-22 17:23:42 · 387 阅读 · 0 评论 -
C++类内静态常量定义和声明及enum hack
此篇文章介绍类内静态常量定义和声明的用法,在编程时经常遇到需要定义一个常量,而且如果要确保其的有效性在某个范围内,则需要将其定义在一个class内。而其用法常会遇到一些问题,下面简要说明其中会遇到的一个问题原创 2017-07-22 16:33:31 · 8067 阅读 · 2 评论