随笔分类 - C++学习
学习C++时期进行的各项练习
摘要:引言:lambda表达式在STL应用中可以让我们起到十分便捷的功能,我们看下微软的解释。When you write code, you probably use function pointers and function objects to solve problems and perform...
阅读全文
摘要:1 2.reverse迭代器2 a) 在逻辑上,rbegin指向最后一个元素,rend指向第一个元素的前一个位置。3 b) 但是在实际实现上,rbegin指向最后一个元素的下一个位置,rend指向第一个元素。4 c) reverse迭代器的物理位置与逻辑位置差15 d) 逻辑...
阅读全文
摘要:引言:这是C++对象内存分配的基础,为防止忘记。看一个类包含其他类时是如何构造的。#include using namespace std;class Object{public: Object() { cout 2 using namespace std; 3 4 ...
阅读全文
摘要:引言: 有种特殊情况,当两个类需要相互引用形成一个”环形“引用时,无法先定义使用。 这时候需要用到前向申明但是前向申明的类不能实例化。 1 #pragma once 2 3 #include "B.h" 4 class A 5 { 6 public: 7 A(); 8 ~A();...
阅读全文
摘要:引言: 动态规划是我们求两个字符串最长公共子序列的重要算法, 求编辑距离时同样也要用到。 a b c d c b a 0 0 0 0 0 0 0 0a 0 1 1 1 1 1 1 1 b 0 1 2 2 2 2 2 2d 0 1 2 2 3 3 3 3...
阅读全文
摘要:当优先级队列中存放我们自定义规则时, 编译器不知道该如何排序如: priority_queue 这种代码是无法通过编译的, 需要我们手动写一个比较规则priority_queue 即可代码如下 1 #include 2 #include 3 #include 4 #include 5 #in...
阅读全文
摘要:引言: 当我们在类的内部需要定义一个指向 this 自身对象的 智能指针时, 会出现 两个同指向智能指针 分属两个系统的问题, 导致析构的时候 出现二次析构, 程序就会挂掉。因为两个指针指向同一个对象,但是却不共享引用计数那么在类内部如何获取 指向自身对象的 智能指针呢, 显式手动的获取很明显是错误...
阅读全文
摘要:引言:此次我们重新封装线程, 采用基于对象编程的方式,不用于面向对象编程中重定义虚函数的方式,这里我们用回调函数的方式。Thread.h 1 #ifndef THREAD_H_ 2 #define THREAD_H_ 3 4 #include 5 #include 6 #include 7 ...
阅读全文
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define ERR_EXIT(m) \ 11 ...
阅读全文
摘要:引言:函数适配器也是种模板技术, 通过绑定把函数绑定到适配器上实现函数调用, 并且可以修改参数,和移动参数的位置。功能强大在这里简单介绍一下这种强大的工具1. 对于普通函数, 直接把它的类型 如此填入 适配器当做函数类型即可 function pf = &func ; 这样定义, pf就变成了...
阅读全文
摘要:引言: 编写智能指针的要点:a) 构造函数接收堆内存b) 析构函数释放内存c) 必要时要禁止值语义。d) 重载*与->两个操作符1. 简易的智能指针 。 1 #ifndef START_PTR_H 2 #define START_PTR_H 3 4 #include 5 using namesp...
阅读全文
摘要:引言:1.单例模式的目的:确保一个类只有一个实 例,并提供对该实例的全局访问。2.单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。单例模式 如何实现只有一个实例?? 禁用拷贝构造函数,防止拷贝。那么...
阅读全文
摘要:本章我们讨论一下左值和右值, 剔除我们在学习C语言时养成一些错误常识。先上代码 1 #include 2 #include 3 using namespace std; 4 5 6 //在c++98中,变量分为左值和右值,左值指的是可以取地址的变量,右值指的是非左值。二者的根本区别在于能否获...
阅读全文
摘要:转自:http://blog.csdn.net/custa/article/details/5674434primer 书上对重载该操作符的解释过于简单,但是总结性十分强:箭头操作符可能看起来是二元操作符:接受一个对象和一个成员名,对对象解引用以获取成员。其实箭头操作符是一元操作符,没有显示形参(而...
阅读全文
摘要:1 #include 2 #include 3 #include 4 using namespace std; 5 6 template 7 T max(T a, T b) 8 { 9 return a > b ? a : b;10 }11 12 13 14 int main(i...
阅读全文
摘要:1 #ifndef TIMESTAMP_H 2 #define TIMESTAMP_H 3 4 #include 5 #ifndef __STDC_FORMAT_MACROS 6 #define __STDC_FORMAT_MACROS 7 #endif /* __STDC_FORMAT_M...
阅读全文
摘要:这篇我们讨论一下vector 自增长的体现 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main(int argc, const char *argv[]) 7 { 8 vector vec; 9 ...
阅读全文
摘要:1.当我们把类体内的一些成员函数设置为private时, 外部用户(除了该类内部的用户)则无法调用该函数。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 //Test不支持复制和赋值。所以不能放入vector 7 cl...
阅读全文
摘要:引言: 这篇文章写在我们窥探庞大的STL 库之前,先熟悉一下基本操作,用于练手, 也用于过段时间的复习。1.可以用一个容器去初始化另外一个容器。但是两个容器的类型和内置类型都必须一致,否则编译无法通过。 1 #include 2 #include 3 #include 4 using name...
阅读全文
摘要:需求:1.作业:写一个Date类a) 数据成员:year/month/day okb) 提供两个构造函数 okc) 实现功能setDate设置日期 okd) 把时间设定为今天 setToday(); oke) toString() 打印格式:2009/7/31 okf) toFormatString...
阅读全文

浙公网安备 33010602011771号