c++
文章平均质量分 52
Vincentlmeng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++getline和get的区别
getline()和get()这两个函数都读取一行的输入,直到达到换行符。然而不同的是gerline()将丢弃换行符,而get()将换行符保留在输入序列中。(1)getline#include <iostream>using namespace std;const int SIZE = 15;int main(){ char name[SIZE]; char dessert[SI原创 2017-05-24 21:56:45 · 13059 阅读 · 2 评论 -
派生类和基类之间的关系
1、派生类对象可以使用基类的方法,条件是方法不是私有的RatedPlayer rplayer(1140,"Mallory","Duck",true);rplayer.Name();2、基类指针可以在不进行显示类型转换的情况下指向派生类对象 3、基类引用可以在不进行显式类型转换的情况下引用派生类对象RatedPlayer rplayer1(1140,"Mallory","Duck",true);原创 2017-05-15 16:35:32 · 2297 阅读 · 0 评论 -
C++中pair的使用方法
原:http://blog.youkuaiyun.com/oceanlight/article/details/7890537pair的类型: pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象放进去。。 pair<string,int> p; pair<int ,int > p; pair<double,int> p;都可以转载 2017-05-06 21:06:43 · 959 阅读 · 0 评论 -
多态公有继承的实现
1、什么是多态公有继承 希望同一个方法在派生类和基类中的行为是不同的,换句话说,方法的行为应取决于调用该方法的对象。这种较复杂的行为称为多态—-即具有多种形态。 2、如何实现多态 (1)在派生类中重新定义基类的方法 (2)使用虚方法virtual 对于第一种重新定义基类的方法可以参考上一篇博文派生类和基类的关系http://blog.youkuaiyun.com/vincentlmeng/articl原创 2017-05-15 22:03:54 · 701 阅读 · 0 评论 -
静态联编和动态联编
1、什么是联编 将源代码中的函数调用解释为执行指定的函数代码块被称为函数名联编(binding) 2、什么是静态联编 因为每个函数名对应于一个不同的函数。在c++中由于函数重载。使得编译器必须查看函数参数以及函数名才能确定使用哪个函数,因此在编译过程中进行联编被称为静态联编(static binding)又称为早期联编(early binding) 3、什么是动态联编 当有虚函数存在时,使原创 2017-05-16 10:44:24 · 951 阅读 · 0 评论 -
静态联编和动态联编虚函数
在《C++Primer Plus》第13章类继承中有过详细的说明。通常,编译器处理虚函数的方法是:给每一个对象添加一个隐藏成员。隐藏成员中保存了一个只想函数地址数组的指针。这种数组成为虚函数表(vtable)。虚函数表中存储了为类对象进行声明的虚函数的地址。例如基类对象包含一个指针,则该指针指向的是基类中所有虚函数的地址表。 派生类对象将包含一个指向独立地址表的指针。如果派生类为虚函数提供了新的定原创 2017-03-24 10:28:36 · 923 阅读 · 0 评论 -
c++代码重用之私有继承
在C++has-a关系中,还有一种实现途径叫—私有继承。 使用私有继承,基类的共有成员和保护成员都成派生类的私有成员,虽然基类方法因此不会成为派生对象共有接口的一部分,但可以在派生类的成员函数中使用它们。派生类不继承基类的接口。 1、初始化基类组件 隐式的继承组件而不是成员对象将影响代码的编写,例如Student(const char *str,const double *pd,int n)原创 2017-05-17 22:36:14 · 556 阅读 · 0 评论 -
Find All Anagrams in a String给定字符串s和非空字符串p,找出p中是s中点的所有子串
LeetCode438号问题。 问题描述:给定一个字符串s和一个非空字符串p,找出p中的所有是s的anagrams字符串的子串,返回这些子串的起始索引。 s=”cbaebabacd” p=”abc” 则返回的是[0,6] 位置0 cba,位置6 bac也就是不考虑顺序,只要这个子串包含P中的所有元素即可。 如s=”abab” p=”ba” 则返回的是[0,1,2] 注意点:字符集范围,英原创 2017-05-15 15:59:27 · 1180 阅读 · 0 评论 -
字符数组的定义和初始化
1、字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I','','a','m','',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即转载 2017-04-21 21:44:12 · 20489 阅读 · 1 评论 -
基类构造析构函数、子类构造析构函数和子类成员变量构造析构函数的调用顺序
首先看一个问题: 分析下面这个程序析构函数的调用顺序。class A { public: A() { } ~A() { cout<<"~A"<<endl; } }; class B:public A { public: B(A &a):_a(a) { }原创 2017-04-21 21:02:32 · 2182 阅读 · 0 评论 -
c++第四章复习题
8.设计一个描述鱼的结构声明。结构中应当包括品种、重量(整数,单位为盎司)和长度(英寸、包括小数)。答:struct fish{ char kind[]; int weight; float length;};12、假设treacle是一个包含10个元素的float数组,请声明一个指向treacle的第一个元素的指针,并使用该指针来显示数组的第一个元原创 2017-01-08 21:29:32 · 957 阅读 · 0 评论 -
c++primer plus 第六版第四章编程习题
Author:MengFrom : C++ Primer Plus第六版第四章编程练习 第1题 Problem : 编写一个C++程序,如下述输出示例所示的那样请求并显示信息: What is your first name? Beety Sue What is your last name? Yewe What letter grade do you deserve? B What原创 2017-01-09 11:20:37 · 3152 阅读 · 2 评论 -
c++primer plus第五章编程练习
1.编写一个要求用户输入两个整数的程序,giant程序将计算并输出这两个整数之间(包括这两个整数)所有的整数的和。这里假设先输入较小的整数,例如如果用户输入的是2和9,则程序将指出2-9之间所有整数的和为44.#include using namespace std;int main(){ int x,y; cin>>x; cin>>y; int sum=原创 2017-01-11 21:19:03 · 3940 阅读 · 3 评论 -
算法时间复杂度与空间复杂度
算法时间复杂度的定义:在进行算法分析使,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n 的变化请款并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)=O(f(n))。他表示随问i中题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的监禁时间复杂度,简称为时间复杂度,关键知道执行次数=时间;我们三个求和算法的时间复杂度分别为原创 2017-03-02 10:25:17 · 739 阅读 · 0 评论 -
错误 1 error C2679: 二进制“<<”: 没有找到接受“void”类型的右操作数的运算符(或没有可接受的转换)
void Get(const Key & k) { for (size_t i = 0; i < currentSize; ++i) { if (arr[i].key == k) return arr[i].value; } return Value(); }在主程序原创 2017-03-20 10:16:13 · 14778 阅读 · 0 评论 -
二叉树遍历和相关知识
二叉树有几种遍历方式: 前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 (a) 前序遍历:1 2 4 8 5 3 6 7 中序遍历:8 4 2 5 1 6 7 3 后序遍历:8 4 5 2 6 7 3 11、二叉树的深度。 输入一颗二叉树的根结点,求该树的深度。/* struct TreeNode { int val;原创 2017-03-27 21:15:02 · 402 阅读 · 0 评论 -
C++编程学习的经典网站,强烈推荐!
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段2、http://转载 2017-03-11 16:52:45 · 2228 阅读 · 0 评论 -
如何判断系统大端小端问题
端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Little转载 2017-03-21 21:16:54 · 942 阅读 · 0 评论 -
数组中连续子数组和
1、LeetCode上209号问题给定一个整型数组s,找到数组中最短的一个连续子数组,使得连续子数组的数字和sum>=s,返回这个最短的连续子数组的返回值。 如-给定的数组[2,3,1,2,4,3] s=7; 答案为[4,3]返回的是2。#include <iostream>#include <cassert>#include <vector>#include<algorithm>usi原创 2017-05-11 10:33:05 · 1557 阅读 · 0 评论 -
字符串中没有重复的字符最大子串
在一个字符串中寻找没有重复字母的最长子串。 如在“abcabcbb”则结果“abc”; “bbbbb”结果为“b” “pwwkew”结果为“wke” 需要考虑的点: 字符集,只有字母,数字+字母,或ASCII码 大小写是否敏感。 思路:采用双索引 l,r建立滑动窗口s[l…r]; 建立一个大小为256的数组,存放大小为字符值所在位置出现的次数,如“abbabcde” ‘a’97;原创 2017-05-11 11:38:46 · 1214 阅读 · 0 评论 -
c++11新特性--auto的使用
C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。 1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。[cpp] view转载 2017-04-21 15:57:05 · 529 阅读 · 0 评论
分享