6.2.4  拷贝构造函数 在C++世界中,除了需要使用构造函数直接创建一个新的对象之外,有时还需要根据已经存在的某个对象创建它的一个副本,就像那只叫做多利的羊一样,我们希望根据一只羊创建出来另外一只一模一样的羊.例如: // 调用构造函数创建一个新对象shMother Sheep shMother; // 对shMother进行一些操作… // 利用shMother对象创建一个一模一样的新对象shDolly作为其副本 Sheep shDolly(shMother); 在这里,首先创建了一个Sh…
题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 题目地址 https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/quest…
题目描述 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置 [思路]当一个字符第一次出现的位置和它最后一次出现的位置相同,那么它就是只出现一次的数 class Solution { public: int GetLastIndex(char c,string str) { ; i >= ; i --) { if(str[i] == c) { return i; } } ; } int FirstNotRepeatingChar…
题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 一次遍历存储到哈希表 一次遍历取Value为1的第一个字符的索引 class Solution { public: int FirstNotRepeatingChar(string str) { int len = str.size(); ) ; map<char, int> mapping; for (auto c :…
6.2.6  类成员的访问控制 类成员包括类的成员变量和成员函数,它们分别用来描述类的属性和行为.而类成员的访问控制决定了哪些成员是公开的,可以被外界访问,也可以被自身访问:哪些成员是私有的,只能在类的内部访问,外界无法访问.就像一个人的钱包,只有他自己能动,别人是不能动的.又如同自己藏的私房钱也只有自己知道,对其他人而言,私房钱是完全隐藏的. 大家可能会问,为什么要对类成员的访问加以控制,大公无私地谁都可以访问不是挺好的吗?这是因为在现实世界中,人们对事物的访问是受到控制的,我们可以访问到某些…
一.让自己习惯C++    条款01:视C++为一个语言联邦       为了更好的理解C++,我们将C++分解为四个主要次语言: C.说到底C++仍是以C为基础.区块,语句,预处理器,内置数据类型,数组,指针统统来自C. Object-Oreinted C++.这一部分是面向对象设计之古典守则在C++上的最直接实施.类,封装,继承,多态,virtual函数等等... Template C++.这是C++泛型编程部分. STL.STL是个template程序库.容器(containers),迭代…
以下是我自己学习设计模式的感想. 原型模式 学过C++的都知道拷贝构造函数,复制一个对象分为浅拷贝和深拷贝. 浅拷贝:就是给对象中的每个成员变量进行复制,就是把A1类中的变量直接赋给A2类中变量,属于值传递,但是涉及到有new之类内存分配的地方,他们却是共享内存的. 深拷贝:就是不仅使用值传递,而是要每个变量都有自己一份独立的内存空间,互不干扰. 默认的拷贝构造函数是浅拷贝的,如果要实现深拷贝,就需要重写拷贝构造函数T(const T&). 既然有了拷贝构造函数,还要引入原型模式呢?根据我自己查…
题目地址:http://ac.jobdu.com/problem.php?pid=1351 题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 输入: 每个测试案例包括两行: 第一行包含一个整数n,表示数组大小.2<=n <= 10^6. 第二行包含n个整数,表示数组元素,元素均为int. 输出: 对应每个测试案例,输出数组中只出现一次的两个数.输出的数字从小到大的顺序. 样例输入: 8 2 4 3 6 3 2 5 5 样例输出: 4 6…
3-4 长方形的周长和面积计算 Time Limit: 1000MS Memory limit: 65536K 标题叙述性说明 通过本题的练习能够掌握拷贝构造函数的定义和用法: 设计一个长方形类Rect.计算长方形的周长与面积. 类中有私有数据成员Length(长).Width(宽).由具有缺省參数值的构造函数对其初始化,函数原型为:Rect(double Length=0, double Width=0); 再为其定义拷贝构造函数,形參为对象的常引用.函数原型为:Rect(const Rect…
★ 如何把C++的源代码改写成C代码? C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用C语言改写是很有必要的. C++与C区别最大的就是C++中的类的概念和特性,将C++改为C的问题,就转换成如何将类化去的问题. 方法有两种: ● 将C++中的面向对象特征去掉,先全部理解源代码的逻辑,然后改写; ● 是在C中保留面向对象的部分特征,用结构体实现类的功能. 第一种方法,对于类的数目很少…