C++学习笔记
在国外大学学习过程中的一系列C++学习笔记,包含着考试易考点、重点、难点。
爱吃的小花猫
来者皆客
展开
-
C/C++ STACK &HEAP 区别
堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式原创 2015-03-12 11:51:39 · 76333 阅读 · 10 评论 -
Verification and validation
VerificationVerification is the process to make sure the product satisfies the conditions imposed at the start of the development phase. In other words, to make sure the product behaves the way原创 2015-06-14 12:32:02 · 1116 阅读 · 0 评论 -
software testing
Software TestingSoftware testing is the process of evaluation a software item to detect differences between given input and expected output. Also to assess the feature of A software item. Testing as...原创 2015-06-14 12:39:44 · 1075 阅读 · 0 评论 -
constructor C++ example
The constructor for this class could be defined, as usual, as: Rectangle::Rectangle (int x, int y) { width=x; height=y; } But it could also be defined using membe原创 2015-04-08 06:21:17 · 1296 阅读 · 0 评论 -
class example of C++
#include using namespace std;class Rectangle { int width, height; public: void set_values (int,int); int area() {return width*height;}};void Rectangle::set_values (int x,原创 2015-04-08 05:49:29 · 1526 阅读 · 0 评论 -
加拿大的考试季 帮助及讨论帖
多谢大家的一直以来的支持今日应该是加拿大、美国等国家期末考试的非常时期,所以我想尽量的帮助到大家,如果有什么问题的话,可以向给我评论,看我能不能帮到大家。我可以回答的问题不限,但我的时间有限,所以回答的速度不敢保证。多谢原创 2015-04-08 08:07:59 · 873 阅读 · 1 评论 -
strdup strcpy 的区别
strdup可以直接把要复制的内容复制给没有初始化的指针,因为它会自动分配空间给目的指针strcpy的目的指针一定是已经分配内存的指针原创 2015-04-08 01:36:42 · 1475 阅读 · 0 评论 -
Hash table: why size should be prime?
Question:Possible Duplicate:Why should hash functions use a prime number modulus?Why is it necessary for a hash table's (the data structure) size to be a prime?From what I unders原创 2015-04-08 01:06:13 · 1387 阅读 · 0 评论 -
Hash table lengths and prime numbers
Website:http://srinvis.blogspot.ca/2006/07/hash-table-lengths-and-prime-numbers.htmlThis has been bugging me for some time now...The first thing you do when inserting/retreiving from hash tabl原创 2015-04-08 00:59:54 · 2220 阅读 · 0 评论 -
Perfect hashing (And Minimal perfect hashing)
Perfect Hashing:A hash function that is injective—that is, maps each valid input to a different hash value—is said to be perfect. With such a function one can directly locate the desired entry in原创 2015-04-08 00:54:33 · 2448 阅读 · 0 评论 -
Vector C++
vector容器类型 vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。vector的构造 函数原型:template explicit vector(); // 默认构造函数,vector对象为空原创 2015-04-07 09:49:59 · 717 阅读 · 0 评论 -
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2015-04-05 01:15:27 · 1002 阅读 · 0 评论 -
C语言排序算法总结
功能:选择排序输入:数组名称(也就是数组首地址)、数组中元素个数算法思想简单描述: 在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。选择排序是不稳定的。算法复杂度O(n2)--[n的平方]==========================================转载 2015-04-05 02:31:18 · 1686 阅读 · 0 评论 -
char *s="string"和char s[]="string"的区别
char *s="string"的内容是不可以改的void main(){ char* pStr1 = "Hello!"; char pStr2[] = "Hello!"; change(pStr1); change(pStr2);}void change(char* pInstr){ pInstr[0]='O';}原创 2015-04-04 14:35:39 · 2659 阅读 · 0 评论 -
如何把string转换char*类型
需要调用string头文件 ( #include )用string里的函数c_str()可以把string转换为char* 例如char * c_str2=str1.c_str();原创 2015-04-04 14:18:16 · 1258 阅读 · 0 评论 -
构造函数与其他类方法的区别
区别:1、构造函数的函数名称与类名同名,其他方法(函数)名称可以自定义。2、构造函数仅在对象被创建时系统会根据给定的参数以及类中的构造函数定义进行选择调用,如果类中没有定义构造函数,系统默认会提供一个无参构造空函数,什么都不会做,只是满足接口要求,构造函数不能被显式调用。其他函数根据程序员需要而调用,且必须显式调用。3、由于对象创建后,系统必须返回新建对象的地址,赋值给指针变量(C++原创 2015-04-04 12:49:54 · 2953 阅读 · 0 评论 -
iomanip的作用 C++
c++程序里面经常见到下面的头文件 #include iomanip> 这里面iomanip的作用比较多: 主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase原创 2015-04-04 15:33:16 · 1934 阅读 · 0 评论 -
char和string的不同点
'a'是char, "a"是char string,这两者都是普通的字符和字符串,和C中没什么不同值得注意的是后者包含两个字符,末尾有一个隐身的'\0'而:string str = "a" 是C++ string注意:C++中的char string和string不是一回事当用到了"string"这个关键词,就不是普通的字符串,而是用到了封装后的类在C+原创 2015-04-04 14:32:06 · 510 阅读 · 0 评论 -
易错点
Class的最后不要忘记加“;”Class中constructor 不要加return原创 2015-04-04 05:05:50 · 373 阅读 · 0 评论 -
c++类构造函数详解
//一、 构造函数是干什么的/* 类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数->由构造函数完成成员的初始化工作 eg: Counter c1; 编译系统为对象c1的每个数据成员(m_value)分配内存空间,并调用构造函数Counter( )自动地初始化对象,初始化之后c1的m_value值设置为0 故:构造函原创 2015-04-04 04:13:40 · 966 阅读 · 0 评论 -
hash table (youtube 2)
https://www.youtube.com/watch?v=jEdaduyLLqY原创 2015-04-02 01:42:12 · 1292 阅读 · 0 评论 -
Hash Table (youtube)
here is a link for youtube about hash table which is super goodhttps://www.youtube.com/watch?v=h2d9b_nEzoA原创 2015-04-02 01:19:56 · 465 阅读 · 0 评论 -
C++ enum的使用
enum day {Sun,Mon,Tue,Wed,Thu,Fri,Sat}; 默认情况下,枚举符的值从0开始,其后值总是前面一个+1。 即Sun=0,Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat=6 也可以自己定义数值,其后值总是前面一个+1 例如: enum day {Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat}d1,d2,d3;原创 2015-04-01 12:36:14 · 1459 阅读 · 0 评论 -
int**a = new int[5][6] 怎么delete
int **a = new int[5][6],这个根本编译不过去吧。如果你想new一个二维数组出来,应该这样:int** a= new int*[5];for (int i = 0; i { a[i] = new int[6];}delete的时候,反过来就行了:for (int i = 0; i { delete[]原创 2015-03-29 12:50:53 · 1262 阅读 · 1 评论 -
c++: Does the new operator for dynamic allocation check for memory safety?
Quesion:My question arises from one of my c++ exercises (from Programming Abstraction in C++, 2012 version, Exercise 12.2). Here it is:void strcpy(char *dst, char *src) { while (*dst++ = *sr原创 2015-03-25 11:02:41 · 1411 阅读 · 1 评论 -
Does the C standard guarantee buffers are not touched past their null terminator?
Question:In the various cases that a buffer is provided to the standard library's many string functions, is it guaranteed that the buffer will not be modified beyond the null terminator? For examp原创 2015-03-24 15:55:42 · 810 阅读 · 0 评论 -
C++中析构函数的作用
如果构造函数打开了一个文件,最后不需要使用时文件就要被关闭。析构函数允许类自动完成类似清理工作,不必调用其他成员函数。析构函数也是特殊的类成员函数。简单来说,析构函数与构造函数的作用正好相反,它用来完成对象被删除前的一些清理工作,也就是专门的扫尾工作。原创 2015-03-23 14:04:59 · 3145 阅读 · 0 评论 -
c++构造函数与析构函数
/*设计一个类,它具有一个float指针成员.构造函数具有一个整形参数count,它为指针成员分配count个存储数据的元素空间.析构函数释放指针指向的空间.另外设计2个函数成员完成如下功能: (1)向指针指向的空间中存储数据; (2)返回这些数的平均值.*/#includeclass FLOAT{ public: FLOAT(int count原创 2015-03-23 13:49:54 · 2301 阅读 · 0 评论 -
子类的拷贝构造函数如何调用其父类的拷贝构造函数
class base {public: base(int initialvalue = 0): x(initialvalue) {} base(const base& rhs): x(rhs.x) {}private: int x;};class derived: public base {public: derived(int init原创 2015-03-23 13:32:10 · 4171 阅读 · 0 评论 -
在一个类的成员函数中调用另一个类的成员函数
假设你想在类A里调用类B的函数int f(x),两种办法:1、class A::B 也就是说将B定义为A的父类, 这样你就可以自然的在A里面用f(x)了2、class A{B B_ins;int g(x);}int g(x){return B_ins.f(x)}也就是说你可以在A里面使用一个B的对象作为成员变量,这样就可以用他的函数了原创 2015-03-23 13:14:41 · 11572 阅读 · 0 评论 -
析构函数允许重载吗?
不能,因为无参无返回值无类型原创 2015-03-23 14:08:31 · 4513 阅读 · 0 评论 -
vim note(5)
.vimrc 的设置$HOME/.vimrc 的普通设置,如下。set nocompatible "" not compatible with VI"" Encodings and fontsset encoding=utf-8set fileencoding=utf-8set fileencodings=ucs-bom,gb18030,gbk,gb2312,cp936原创 2015-03-21 06:23:03 · 924 阅读 · 0 评论 -
vim 学习总结
vim ~/.vimrc vim Student.cc首先,Mac系统默认已经安装了Vim。打开终端,输入vim,回车。可看到如下界面,即表示Vim已经安装了。在vim里输入":q" 在终端上,界面非常之简洁,如果你需要更加复杂的界面以及使用Vim更多的特性,需要下载客户端安装。在Mac上目前存在两个版本的Vim客户端: 1、转载 2015-03-21 04:46:30 · 4716 阅读 · 0 评论 -
vim note(3)
Ctrl+w Ctrl+v will create a new window on the right side of the current windowCtrl+w Ctrl+s will create a new window on the down side of the current window(Ctrl+w)^2 press twice, go原创 2015-03-21 04:42:12 · 918 阅读 · 1 评论 -
vim note (1)
'vim' go into the vim mode'i' 'a' 's' is means insert mode'v' is means visual mode'esc' is means back to normal modej down k uph leftl right原创 2015-03-21 04:21:57 · 1245 阅读 · 0 评论 -
vim cheat sheet
原创 2015-03-21 04:16:26 · 2071 阅读 · 0 评论 -
vim note (2)
:e edit:edit edit:e. edit current file '.' a dot is means current: w write: x save &exit: q quit: q! quit anywayshift * high the current wordw forwo原创 2015-03-21 04:38:08 · 786 阅读 · 1 评论 -
浅谈分支预测、流水线与条件转移
在StackOverflow上有这么一个问题 Why is processing a sorted array faster than an unsorted array? 。例子中,对一个数组进行条件求和,在排序前和排序后,性能有很大的差别。原始的例子是C++和Java的,这里将其换成了C# :static void Main(string[] args){ // Genera转载 2015-03-21 02:27:44 · 5186 阅读 · 1 评论 -
Why is processing a sorted array faster than an unsorted array(Stackoverflow)
What is Branch Prediction?Consider a railroad junction:Image by Mecanismo, via Wikimedia Commons. Used under the CC-By-SA 3.0 license.Now for the sake of argument, suppose this is back in th原创 2015-03-21 02:03:53 · 4055 阅读 · 0 评论 -
tolower (Function)
this is a function that Convert uppercase letter to lowercaseConverts c to its lowercase equivalent if c is an uppercase letter and has a lowercase equivalent. If no such conversion is possibl原创 2015-03-21 01:11:31 · 3915 阅读 · 0 评论