自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勤天下而拥家

新手写博客,有错的地方希望各位网友多多包涵,指正。

  • 博客(22)
  • 资源 (6)
  • 收藏
  • 关注

原创 c++ 对象模型

title: object-mode-layoutdate: 2022/09/12tags: c++对象模型categories: c++对象模型

2022-09-13 15:10:48 994 1

原创 奇异递归模板

1. 背景奇异递归模板模式(Curiously Recurring Template Pattern,CRTP),CRTP是C++模板编程时的一种惯用法(

2022-09-09 17:15:23 926 1

原创 C++ STL 算法库学习之adjacent_difference,count,partial_sum,accumulate,count_if详解

1.连续计算类adjacent_difference,count,partial_sum,accumulate,count_if 均是以线性复杂度accumulate#include <numeric>TYPE accumulate( iterator start, iterator end, TYPE val );TYPE accumulate( iterat...

2018-02-25 20:20:18 593

原创 python itertools库详解(让你的代码更pythonic)

itertoolsapi: Itertool functionsitertools.accumulate(iterable[, func ])def accumulate(iterable, func=operator.add): 'Return running totals' # accumulate([1,2,3,4,5]) --> ...

2018-02-11 23:35:10 20438 3

原创 c++ 进阶 泛型编程

1 . 泛型算法概述每个泛型算法的实现都独立于单独的容器类型 因为已经消除了算法的类型依赖性 所以单个的模板实例可以操作在各种容器以及内置数组类型上 考虑 find()算法 因为它独立于被适用的容器 所以它只要求下列一般性的步骤 这里假设资料集合未经排序1 顺次检查每个元素2 如果当前元素等于要被查找的值 那么返回该元素在集合中的位置3 否则 检查下一个元素 重复步骤 2 直到找到一个元素

2017-01-13 11:28:06 307 1

转载 c++ 内存管理基础篇 综合介绍

C++内存管理。程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。1、内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。在执行

2017-01-07 10:48:44 326

原创 c++ map基础教程

Map是c++的一个标准容器,提供了一对一映射关系。参考python字典,半线性。 1、map最基本的构造函数; “` map map<int ,string> maplive; 1.maplive.insert(pair<int,string>(102,"aclive")); 2.maplive.insert(map<int,string>::value_type(

2017-01-05 11:37:37 1148

原创 python入门学习教程之dictionary(字典)

1.字典介绍字典是Python语言中唯一的映射类型。映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。字典类型与序列类型的区别:1.存取和访问数据的方式不同。2.序列类型只用数字类型的键(从序列的开始按数值顺序索引);3.映射类型可以

2017-01-03 21:25:08 324

原创 c++ 队列(Queue)基础教程

queue是容器配接器C的一个示例,容器配接器C将一些基础容器转换成类C的容器。容器配接器queue、stack、priority_queue——与标准模板库的其他处理是截然不同的。他们的方法和定义要调用基础容器类的方法。 queue的基础类可以为list,list类中有size,empty,push_back,pop_front,front,back方法。deque类也可以作为基础类,而且

2017-01-03 17:29:46 2128

原创 python入门学习教程之List(列表)

单引号 双引号如果字符串中只有单引号而没有双引号,就用双引号引用,否则用单引号引用。 如果你前面带有 \ 的字符被当作特殊字符,你可以使用 原始字符串,方法是在第一个引号前面加上一个 r: >>> print('C:\some\name') # here \n means newline!C:\someame>>> print(r'C:\some\name') # note the r

2017-01-02 16:57:39 705

原创 C++ list最详细教程1 (包含程序源码)

/* list test demo time:2017.1.2在任何位置插入删除都是常数时间,不支持随机存取。除了具有所有顺序容器都有的成员函数以外,还支持8个成员函数:push_front: 在前面插入pop_front: 删除前面的元素sort: 排序( list 不支持STL 的算法sort)remove: 删除和指定值相等的所有元素unique: 删除所有和前一个元素相同的元

2017-01-02 09:54:02 1010

原创 C++ vector 最详细教程2 (包含程序源码)

3.vector容量相关函数含义及操作/size 函数 size_type size() const;max_size0 //函数返回vector的存储元素的个数,而不是其实际的容量void testSize(){ std::vector<int> myints; std::cout << "0. size: " << myints.size() << '\n'; fo

2017-01-01 21:49:39 930

原创 C++容器 vector 最详细教程1 (包含程序源码)

vector教程第一篇1.右值介绍/* vector C++ 11 有五个构造函数 默认构造函数 填充构造函数 范围构造函数 复制构造函数 移动构造函数 右值引用:&& 所引用的临时对象可以在该对象被初始化之后做修改 */右值测试:bool is_r_value(int &&){ return true;}bool is_r_value(const int &){

2017-01-01 20:54:30 473

原创 C语言之坑:sizeof与strlen

两者区别:1.sizeof 是一个操作符, strlen 是库函数。 2.sizeof 的参数可以是数据的类型,也可以是变量,而 strlen 只能以 结尾为‘\0‘的字符串作参数。 3.编译器在编译时就计算出了 sizeof 的结果。而 strlen 函数必须在运 行时才计算的是数据类型占内存的大小,而 strlen 计算的是字符串实 际

2016-09-29 20:16:11 482

原创 explicit

explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项:* explicit 关键字只能用于类内部的构造函数声明上。* explicit 关键字作用于单个参数的构造函数。* 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的

2016-09-15 17:43:21 190

原创 每天一道笔试题(腾讯1)

题目:对一个正整数作如下操作:如果是偶数则除以 2,如果是奇数则加 1,如此进行直到 1 时操作停止,求经过 9次操作变为 1 的数有多少个? 解法思路: 第 9 次操作:结果 1 由 2 产生。 1 个被操作数 8:结果 2 只能由 4 产生。 1 个被操作数 7:结果 4 由 8、 3 产生。 2 个 6:结果 8 由 16、 7 产生;结果 3 由 6 产生。共 3 个 5:结果

2016-09-01 14:49:53 352

转载 c++ const

auto和decltype的用法总结 一, auto1, auto的作用 一般来说, 在把一个表达式或者函数的返回值赋给一个对象的时候, 我们必须要知道这个表达式的返回类型, 但是有的时候我们很难或者无法知道这个表达式或者函数的返回类型. 这个时候, 我们就可以使用auto关键字来让编译器帮助我们分析表达式或者函数所属的类型. 比如: 1 2 auto item = val1 +

2016-07-27 16:46:20 211

转载 c++ 模板

C++模板模板是 C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。模板是一种对类型进行参数化的工具;通常有两种形式: 函数模板和类模板;函数模板针对仅参数类型不同的函数;类模板针对仅数据成员和成员函数类型不同的类。使用模板的目的就是能够让程序员编写与类型无关的代码。 比如编写了一个交换两个整型

2016-07-26 20:49:50 286

转载 c++多态

原文出处:http://www.royaloo.com/articles/articles_2003/PolymorphismInCpp_content.htm摘要本文描述了C++中的各种多态性。重点阐述了面向对象的动态多态和基于模板的静态多态,并初步探讨了两种技术的结合使用。 关键词多态 继承 虚函数 模板 宏 函数重载 泛型编程 泛型模式 导言多态(polymorphism)一词

2016-07-26 09:32:00 390

原创 二叉树遍历之中序遍历(源代码)

二叉树的中序遍历要点: 1.中序遍历左子树 2.访问根节点 3.中序遍历右子树 实例: 如图:中序遍历结果:DBEAFC 中序遍历的时间复杂度为:O(n)。 如果一棵二叉排序树的节点值是数值,中序遍历的结果为升序排列的数组。可以利用该性质检测一棵树是否为二叉排序数。 已知前序遍历和后序遍历,不能确定唯一的中序遍历 投影法: 计算中序遍历拥有比较简单直观的投影法,如图 3.

2016-05-18 11:22:27 13479 2

原创 二叉树的先序遍历(源代码)

1.先序遍历要点: ⑴ 访问根结点; ⑵ 遍历左子树; ⑶ 遍历右子树。例子:如下图,先序遍历方式结果输出为:ABDECF 代码实现(递归版): void preOrder1(BinTree *root) //递归前序遍历 { if(root!=NULL) { cout<<root->data<<" "; preOrder

2016-05-17 23:13:24 9403 1

原创 c语言小项目个人实现

=====项目一=====实训内容: 1、定义一个数组a[11],用以存放学生的成绩。 2、从键盘输入10个学生成绩 3、采用冒泡法,将学生成绩按照从高到低进行排序 4、再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组 5、将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列个人代码如下:#include<iostream>using namespace st

2016-05-12 22:36:54 670 1

C++面试宝典

2017-01-05

C++经典程序代码大全.doc

2017-01-05

c++多态技术和虚函数表

详细介绍了c++多态实现原理

2017-01-05

深度学习资料系列

2017-01-05

c语言精髓 笔试 常见错误

对于c语言常见问题进行了归纳整理

2017-01-05

单片机经典学习资料

51单片机经典教程,与一些学习经典,经典常用的小工具。适合初学者,和一些喜欢偷懒的开发者。

2015-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除