C++学习
MarsNov
Courage is going from failure to failure without losing enthusiasm.
展开
-
数据结构学习笔记(绪论一)
绪论 Programs= Algorithms+Data Structus 算法分析 一个好的算法:运算速度尽可能快,存储空间尽可能少。 算法分析: a. 正确性; b. 成本(时间+空间) 时间成本—>基本操作次数 Turning Machine(图灵机模型) Random Access Machine(RA原创 2015-04-08 10:26:55 · 833 阅读 · 0 评论 -
C++静态成员函数小结
类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同转载 2015-08-21 16:46:28 · 325 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似转载 2015-09-07 08:31:39 · 343 阅读 · 0 评论 -
C/C++中const关键字详解
为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:常变量: const 类型说明符 变量名常引用: const 类型说明符 &引用名常对象: 类名 const 对象名常成员函数: 类名::fun(形参) const常数组: 类型转载 2015-09-10 15:42:26 · 391 阅读 · 0 评论 -
C++编译器符号表有哪些内容?
C++编译器符号表有哪些内容?很早就想写一篇关于符号表的学习小结,可是迟迟不能下笔。其一是因为符号表在编译器的设计中占有举足轻重的地位【我们在学习编译原理的时候更多的是注重principles,而没有关心一个编译器的实现,所以符号表讲解的也比较少】,编译阶段的每“遍”都会和符号表打交道,本人只做过一个Mini C的编译器的前端部分,感觉功底不够;其二是因为我想在原来C语言的基础上,增加C++语言符号转载 2015-09-10 11:06:35 · 11648 阅读 · 0 评论 -
关于C/C++内存分配问题
一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(s转载 2015-09-09 09:47:53 · 577 阅读 · 0 评论 -
c++ primer 【笔记】multimap 和 multiset类型
map 和 set 容器中,一个键只能对应一个实例。而 multiset 和 multimap类型则允许一个键对应多个实例。multimap 和 multiset 所支持的操作分别与 map 和 set 的操作相同,只有一个例外:multimap 不支持下标运算。不能对 multimap 对象使用下标操作,因为在这类容器中,某个键可能对应多个值。为了顺应一个键可以对应多个值这一性质,map 和 mu原创 2015-08-14 11:10:02 · 628 阅读 · 0 评论 -
C++ primer 【笔记】关联容器 set
使用 set 容器必须包含 set 头文件。 map 容器是键-值对的集合,好比以人名为键的地址和电话号码。相反地,set 容器只是单纯的键的集合。当只想知道一个值是 否存在时,使用 set 容器是最适合的。 set 容器支持大部分map 操作 ,包括:insert、cout、find、erase。但是 set 不支持下标操作,而且没有定义 mapped_type 类型。在 set 容器中,v原创 2015-08-13 17:25:18 · 441 阅读 · 0 评论 -
C++ primer【笔记】关联容器 map
1.pair对象pair对象类型在 utility 头文件中定义。表1.1 pair 类型提供的操作 pair< T1, T2 > p1; 创建一个空的 pair 对象,它的两个元素分别是 T1 和 T2类型,采用值初始化 pair< T1, T2 > p1(v1,v2); 创建一个 pair 对象,它的两个元素分别是 T1 和 T2 ,其中 first 成员初始化为 v1原创 2015-08-13 08:42:00 · 528 阅读 · 0 评论 -
C++ primer 【笔记】C++中this指针的用法详解
本文转自: C++的一大误区——深入解释直接初始化与复制初始化的区别 不久前,在博客上发表了一篇文章——提高程序运行效率的10个简单方法,对于其中最后一点,多使用直接初始化,有很多读者向我提出了疑问,并写了一些测试程序,来说明直接初始化与复制初始化是同一件事。让我了解到大家对于直接初始化与复制初始化的区别的确是不太清楚,无可否认,那篇文章的例子用得的确不太好,在这里表示歉意!所以我觉得还是有必要跟大转载 2015-08-26 18:15:10 · 1922 阅读 · 0 评论 -
C++primer【笔记】 顺序容器
这一章主要学习了C++的三种顺序容器:vector、list 、deque(双端队列),三种适配器:stack(堆栈)、queue(队列)、priority_queue(有优先级管理的队列)。1. 顺序容器1.1初始化表1.1 容器构造函数 构造函数形式 备注 C< T > c; C为类型名,c为空容器,T是元素类型 C c(c2); 创建 c 并用 c2 初始化, c 和原创 2015-08-11 17:13:43 · 481 阅读 · 0 评论 -
C++学习笔记之erase
今天编写《C++primer》的习题9.26的小程序,主要是对erase的使用。先贴上代码。#include <iostream> #include <vector> #include <list> using namespace std; int main(){ int a[] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89 };原创 2015-08-10 19:47:24 · 508 阅读 · 0 评论 -
【转】C++ 文件结束符
转载自: http://blog.163.com/zhuandi_h/blog/static/1802702882012210114352789/“>c++文件结束符问题描述:windows下int main(){string str;while(cin>>str);cout<<"\n"<<"end"<<endl;}控制台输入多个字符串后,输入文件结束符crtl-Z,并未使while循环结束,该如转载 2015-06-12 09:05:12 · 531 阅读 · 0 评论 -
数据结构与算法学习笔记——动态规划(1)
动态规划问题一:装配线调度问题装配线调度问题是动态规划的经典问题:一个汽车底盘在进入每一条装配线后,在装配站中会在底盘安装部件,然后完成装配的汽车在装配线末端离开。每条装配线有n个装配站,编号为j=1,2,...,n.j=1,2,...,n.。将装配线ii(ii为1或2)的第jj 个装配站表示为Si,jS_{i,j} 。将装配线1的 j 个站(S1,jS_{1,j})和装配线2的 j 个站(S2,j原创 2015-04-25 18:55:51 · 507 阅读 · 0 评论 -
三个数中取出最大的两个
深深感觉自己智商不够用 其实上一篇笔记并没有写完,还有求一个数组中最大的两个数的问题,但是在自己编写这个问题的程序的时候,突然脑残的卡在了三个数的大小比较上!瞬间怒了!!!决定要把三个数的比较问题和算法好好研究下!治治自己的脑残!!! ~~~~~~~~~~~~~~~~问题描述:在三个数(a,b,c)中取出最大的两个数 x1,x2分别存放最大的数和第二大的数,不适用指针,且暂且不考虑有相同的值1.原创 2015-04-09 16:51:32 · 1290 阅读 · 0 评论 -
数据结构学习笔记(绪论二)
递归迭代的应用比较数组求和问题计算任意n个整数之和。 使用不同的算法求和,比较优劣。典型算法int Sum_Array_Claassical(int A,int n){ int sum=0; for(int i=0;i<n;i++) sum+=A[i]; return sum; }该算法复杂度:T(n)=O(n)T(n)=O(n)线性递归递归:减而治之,将大原创 2015-04-08 16:40:40 · 408 阅读 · 0 评论 -
C/C++ 程序进程在内存中的分布
c/c++程序进程在内存中的表示包括: 文本段 初始化数据段 未初始化数据段 堆 栈文本段, 也称作代码段。 主要包含可执行代码,这部分是只读的。 初始化数据段,也通常简称为数据段。它包含全局变量和由程序员初始化的静态变量。 这部分还可以细分为只读部分和可读可写的部分,例如定义在主函数之外的变量(全局) char s[] = "hello"; static int i = 1;这两个变量存储在已初翻译 2015-09-07 16:17:53 · 1244 阅读 · 0 评论