![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++基础
NgWilli
Graduate Stu. in Nanjing University.
展开
-
vs2010 头文件注意事项
即使工程中主函数不包含某些头文件,只要添加进工程中的头文件就有可能出现重定义的情况解决方案就是移除不需要的头文件。另:using namespace不要写在头文件里 很容易出现名字空间污染 如果一下用很多可以写在某个函数里 比如 int cx(){ using std::cout; using std::cerr;原创 2014-12-07 13:44:17 · 423 阅读 · 0 评论 -
delete和delete[]的区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2)转载 2016-01-07 09:49:08 · 267 阅读 · 0 评论 -
c++智能指针
导读最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……。而且在看开源的C++项目时,也能随处看到智能指针的影子。这说明智能指针不仅是面试官爱问的题材,转载 2016-01-07 10:26:05 · 277 阅读 · 0 评论 -
迭代器 反向迭代器
C++ primer (中文版第四版)第273页9.3.2 begin和end成员 begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一转载 2016-01-26 09:14:41 · 441 阅读 · 0 评论 -
c++类的继承
一、基本概念1、类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为派生类或子类。 2、派生类的声明:class 派生类名:继承方式 基类名1, 继承方式 基类名2,...,继承方式 基类名n{ 派生类成员声明;}; 3、一个派生类可以同时有多个基类,转载 2016-01-26 23:34:12 · 303 阅读 · 0 评论 -
保护继承
protected 与 public 和 private 一样是用来声明成员的访问权限的。由protected声明的成员称为“受保护的成员”,或简称“保护成员”。从类的用户角度来看,保护成员等价于私有成员。但有一点与私有成员不同,保护成员可以被派生类的成员函数引用。如果基类声明了私有成员,那么任何派生类都是不能访问它们的,若希望在派生类中能访问它们,应当把它们声明为保护成员。如果在一个类中转载 2016-01-27 10:36:38 · 627 阅读 · 0 评论 -
C++ 多继承和虚继承的内存布局
在本文中,我们解释由gcc编译器实现多继承和虚继承的对象的布局。虽然在理想的C++程序中不需要知道这些编译器内部细节,但不幸的是多重继承(特别是虚拟继承)的实现方式有各种各样的不太明确的结论(尤其是,关于向下转型指针,使用指向指针的指针,还有虚拟基类的构造方法的调用命令)。 如果你了解多重继承是如何实现的,你就能预见到这些结论并运用到你的代码中。而且,如果你关心性能,理解虚拟继承的开销也是非常转载 2016-01-27 12:23:03 · 548 阅读 · 0 评论 -
虚函数表的内存存放,多种继承关系下
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是转载 2016-01-27 12:57:38 · 415 阅读 · 0 评论 -
RTTI
通过RTTI,能够通过基类的指针或引用来检索其所指对象的实际类型。c++通过下面两个操作符提供RTTI。(1)typeid:返回指针或引用所指对象的实际类型。(2)dynamic_cast:将基类类型的指针或引用安全的转换为派生类型的指针或引用。对于带虚函数的类,在运行时执行RTTI操作符,返回动态类型信息;对于其他类型,在编译时执行RTTI,返回静态类型信息。当具转载 2016-01-28 09:47:23 · 323 阅读 · 0 评论 -
Leetcode algorithms 第 65 题:Valid Number。
题目Validate if a given string is numeric.Some examples:“0″ => true” 0.1 ” => true“abc” => false“1 a” => false“2e10″ => trueNote: It is intended for the problem statement to be amb转载 2016-01-22 11:39:43 · 1117 阅读 · 0 评论 -
内存管理总结
http://www.cnblogs.com/lancidie/archive/2011/08/05/2128318.html转载 2016-01-05 15:40:52 · 880 阅读 · 0 评论 -
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to ) cp is a const pointer to char const char * p; p is a p转载 2016-01-05 14:07:50 · 1350 阅读 · 0 评论 -
“Stock”: 不是类或命名空间名称
“Stock”: 不是类或命名空间名称要将预编译头 #include "StdAfx.h"放在最前面原创 2014-12-07 12:20:52 · 424 阅读 · 0 评论 -
构造函数不能有返回类型
“Stock::{ctor}”: 构造函数不能有返回类型C++primer plus中的错误是因为类定义后面没有加分号原创 2014-12-07 12:19:09 · 545 阅读 · 0 评论 -
c++ 链表中析构函数的编写
是一个结构体新建一个指针 然后交替释放 链表的编写中特别注意检查指针悬空问题原创 2014-12-09 10:47:37 · 3398 阅读 · 0 评论 -
c++中使用基类指针Vector 存放子类对象(0xcccccccc 处未处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突 )
1. c++中允许用基类指针指向子类的对象,先亮出正确写法。#include #include using namespace std;class Base{ public: virtual void print();};class Derived : public Base{ public: virtual void print();};void B原创 2015-11-22 10:37:34 · 4713 阅读 · 0 评论 -
快慢指针
快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。1. 快慢指针判断链表是否为循环链表让快慢指针从链表头开始遍历,快指针向前移动两个位置,慢指针向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,不是循环链表。如果 快指针追上慢指针,则表示出现了循环。fast=slow=head;原创 2015-12-13 13:32:19 · 324 阅读 · 0 评论 -
编程之法:字符串包含 位运算法
简单的说就是建立hash表 后来的字符串与hash表与操作 即可进行对比#include "stdafx.h"#include #include #include using namespace std;bool StringContain(string &a,string &b);int main(){string a="ABCD";string b="B原创 2015-12-14 10:39:41 · 454 阅读 · 0 评论 -
字符串的全排列和组合算法
http://blog.csdn.net/hackbuteer1/article/details/7462447一、字符串的排列用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba一、全排列的递归实现为方便起见,用123来示例下。123转载 2015-12-16 11:29:14 · 341 阅读 · 0 评论 -
八皇后问题
字符串全排列扩展----八皇后问题本篇博客的描述部分得益于http://blog.csdn.net/hackbuteer1/article/details/7462447 代码和原文有很大不同 题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有原创 2015-12-16 15:41:29 · 390 阅读 · 0 评论 -
ZigZag排列问题与经典笔试面试题目解析
ZigZag排列问题与经典笔试面试题目解析标签: 数据结构算法C++经典面试问题求职应聘2015-12-23 17:58 4737人阅读 评论(1) 收藏 举报 分类:数据结构与算法(12) 版权声明:本文为博主原创文章,未经博主允许不得转载。一、图像压缩编码中的Z字排序JPEG(Joint Photographi转载 2016-01-19 16:08:18 · 933 阅读 · 0 评论 -
static_cast、dynamic_cast、const_cast和reinterpret_cast总结
static_cast、dynamic_cast、const_cast和reinterpret_cast总结2013-12-28 分类:C++ / 基础知识 阅读(666)评论(5) 前言这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的。俗话说的好,不懂自己写的代码的程序员,不是好的程序员;如果一个程序员对于自己写的代转载 2016-01-28 10:00:25 · 399 阅读 · 0 评论