
c-c++
Chen-Lee
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别(写的非常好)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似转载 2017-03-13 09:18:24 · 214 阅读 · 0 评论 -
算法面试字符串-题目3-交换*号
例3 一个字符串只包含*和数字,请把它的*号都放开头。方法1:快排partition——数字相对顺序会变化循环不变式:[0..i – 1]都是*,[i..j– 1]是数字,[j..n– 1]未探测程序如下:#include #include #include using namespace std;class Solution {publi原创 2017-07-23 17:26:26 · 286 阅读 · 0 评论 -
关于typedef的用法总结
原文地址:http://blog.youkuaiyun.com/wangqiulin123456/article/details/8284939 在C还是C++代码中,typedef都使用的很多,在C代码中尤其是多。typedef与#define有些相似,其实是不同的,特别是在一些复杂的用法上,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加转载 2017-08-12 13:59:10 · 177 阅读 · 0 评论 -
【LeetCode】Container With Most Water 解题报告
【题目】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,转载 2017-08-05 21:39:28 · 181 阅读 · 0 评论 -
C++通过cin.get()输入字符串
#include #include using namespace std;int main(){ char str[10000]; char temp; int len = 0; cout << "输入:"; while(1) { temp = cin.get(); if(temp != '\n') str[len++] = temp; else bre原创 2017-09-03 21:04:33 · 1147 阅读 · 0 评论 -
C/C++中数字与字符串之间的转换
在C中:方法:1.C标准库中的sprintf, sscanf2.C标准库还提供了 atoi, atof, atol, atoll(C++11标准) 函数将字符串转换成int,double, long, long long 型。在C++中 方法:用C++的streanstream·数字转字符串:1 #include2 #includest转载 2017-08-25 21:47:01 · 246 阅读 · 0 评论 -
C/C++中 变量的存储位置
一下内容转自:http://www.docin.com/p-210019581.html 感谢分享。 1、首先,讲下 “堆 heap” 和 “栈 stack” 的区别: 一个由 c/c++编译过的程序占用的内存分为一下几个部分 (1)、栈区 stack :由编译器自动分配释放, 存放函数的参数值,局部变量的值等。转载 2017-09-20 16:03:41 · 273 阅读 · 0 评论 -
C++命名空间
感谢:http://blog.youkuaiyun.com/touzani/article/details/1637776命名空间在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、枚举、类和对象等等。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入了关键字namespace(命名空间/名字空间/名称空间/名域),可以转载 2017-10-12 21:25:58 · 165 阅读 · 0 评论 -
ifndef/define/endif的区别
问题:ifndef/define/endif”主要目的是防止头文件的重复包含和编译========================================================用法:.h文件,如下:#ifndef XX_H#define XX_H...#endif这样如果有两个地方都包含这个头文件,就不会出现两次包含的情况 。。转载 2017-10-13 18:54:44 · 724 阅读 · 0 评论 -
算法面试字符串-题目2-删除和复制
删除一个字符串所有的a,并且复制所有的b。注:字符数组足够大程序如下:#include #include #include using namespace std;class Solution {public://删除一个字符串所有的a,并且复制所有的b。 string stringRepaceAndCopy(string &A) { int原创 2017-07-23 15:17:59 · 380 阅读 · 0 评论 -
算法面试字符串-题目1
把一个0-1串(只包含0和1的串)进行排序,你可以交换任意两个位置,问最少交换的次数?(国内某公司最新在线笔试题)分析: 快排partition?最左边的那些0和最右边的那些1都可以不管程序如下:#include #include #include using namespace std;class Solution {public: int mi原创 2017-07-22 22:26:32 · 338 阅读 · 0 评论 -
C++复制构造函数
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。 下面看一个类对象拷贝的简单例子。#include <iostream> using namespace std; class CExample { private: i转载 2017-07-10 10:40:25 · 203 阅读 · 0 评论 -
类的静态成员
有的时候类需要它的一些成员与类本身直接相关,比如我们希望某个成员与类相关联,一旦这个成员浮动,我们希望所有的对象都能使用该值。声明静态成员通过在成员声明之前加上关键词static使其与类关联在一起。静态成员可以是public或private的。静态数据成员的类型可以是常量、引用、指针、类类型等等。定义一个类,用它表示银行的账户记录:class Account {public: void c原创 2017-04-21 20:47:50 · 249 阅读 · 0 评论 -
C-strstr函数
strstr()函数用来检索子串在字符串中首次出现的位置,其原型为: char strstr( char *str, char substr );#include <iostream>#include <string.h>using namespace std;int main( ){ char *a = "licheng:beijing"; char *p = str原创 2017-06-29 22:29:39 · 266 阅读 · 0 评论 -
C++ const用法
原文地址:http://www.cnblogs.com/xudong-bupt/p/3509567.html C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。1.const 修饰成员变量#includeusi转载 2017-07-10 15:15:02 · 181 阅读 · 0 评论 -
linux c/c++ make
原文地址:http://blog.youkuaiyun.com/liang13664759/article/details/1771246最近在学习Linux下的C编程,买了一本叫《linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看转载 2017-07-12 09:59:19 · 2030 阅读 · 0 评论 -
linux C++ make 实战--建立一个最简单的工程
参考:http://www.cnblogs.com/ycloneal/p/5230266.html一个文件夹下面有list.cpp,list.h,Node.cpp,Node.h,主函数在test.cpp文件下面,最简单的makefile文件可以写成:其中CXXFLAGS是编译参数变量,CXX是makefile内置变量,CXX默认表示g++(C++编译器)。CXX = g++CXXFLA原创 2017-07-12 15:12:19 · 3124 阅读 · 0 评论 -
C++ this指针
经常看到this指针,看到也很蒙,最近看嵌入式软件的系统指针也用this指针表示,C++对象中有时也用到this指针,但是都没搞明白,今天看到百度知道有人问,看了几个答案才明白,大家参考一下: 防止命名冲突时,还有想将对象本身的指针或者引用给别的函数时 return this; // 返回对象本身的指针 return *this; // 返回对象本身的引用 void a::fun() {转载 2017-06-24 22:17:59 · 214 阅读 · 0 评论 -
c++--memset()函数
memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的。 其原型是:void* memset(void *_Dst, int _Val, size_t _Size)_Dst是目标起始地址,_Val是要赋的值,_Size是要赋值的字节数。 例1: char str[9]; 我们用memset给str初始化为“00000000”,用法转载 2017-07-14 20:29:15 · 402 阅读 · 0 评论 -
二维 三维 向量vector 定义,初始化
原文地址:http://blog.youkuaiyun.com/lsh_2013/article/details/244046451.vector> adjMat(500, vector(0)); adjMat二维向量名int 数据类型0是初始化值2.vector容器表示二维数组[cpp] view plain copy#in转载 2017-07-15 10:00:58 · 1942 阅读 · 0 评论 -
C++ vector二维数组初始化以及获取数组长度
一维和二维动态数组初始化为:std::vector vec(10,90); //将10个一维动态数组初始为90std::vector > vec(row,vector(col,0)); //初始化row * col二维动态数组,初始化值为0原创 2017-07-18 10:31:43 · 14039 阅读 · 0 评论 -
二维/多维vector在未知维度的前提下的赋值操作
原文地址:http://blog.youkuaiyun.com/chenwk891/article/details/32933745在很多时候,类中二维数组的维度往往无法提前知道,因此需要动态地分配空间。使用new运算符是其中的一个解决方案,但是操作不当往往会造成内存溢出/泄漏。使用stl的vector可以避免这个麻烦。例如,我在一个类中定义了一个数据成员a为二维i转载 2017-11-25 21:22:37 · 761 阅读 · 0 评论