自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wk_bjut_edu_cn的博客

fire in the hole!

  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 Data 语意学

引言先看一个例子#include <iostream> using namespace std;class X {};class Y :public virtual X {};class Z :public virtual X {};class A :public Y, public Z {};int main(){ cout << sizeof...

2018-04-27 10:25:52 559

原创 关于对象

1.1 C++对象模型在C++中,有两种class data members:static和nonstatic,以及三种class member functions:static、nonstatic和virtual。eg: class Point {public: Point(float xval); virtual ~Point(); float x() const;...

2018-04-25 19:01:38 372

原创 合并两个有效数组

问题描述:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,...

2018-04-20 15:13:15 562

原创 动态规划应用之爬楼梯

问题描述:假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 步 + 1 步2. 2 步示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 步 + 1 步 + 1 步2. 1 步 + 2 步...

2018-04-20 14:09:59 517

原创 stl中的ptr_fun的实现

ptr_fun是一个配接器,这个配接器能够将一般函数当作仿函数使用,使得能够将一般函数当做仿函数传给STL算法。应用举例在https://blog.csdn.net/wk_bjut_edu_cn/article/details/80004279这篇文章中是直接运用仿函数的方法,下面是将一般函数当作仿函数来使用 int LESS(int arg1, int arg2) { if ...

2018-04-19 18:32:09 889

原创 compose1、compose2是什么

compose1和compose2均是用于参数合成比如:f(x)=3*x,g(y)=y+2,那么compose1(f(x),g(y))=(y+2)*3g1(x)=3*x,g2(x)=2*x,h(x)=a+b,那么compose2(h(x),g1(x),g2(x))=3*x+2*x大体效果就是上面这样,但我没有实现,因为这两个配接器并未纳入STL标准,是SGI STL的私产品。STL

2018-04-19 16:13:29 1490

原创 bind1st、bind2nd源码分析

概述bind1st 和 bind2nd 函数把一个二元函数对象绑定成为一个一元函数对象。但是由于原来的二元函数对象接受两个参数,在绑定成为一元函数对象时需要将原来两个参数中的一个绑定下来,也就是通过绑定二元函数对象的一个参数使之成为一元函数对象的参数。bind1st是绑定第一个参数,bind2nd则是绑定第二个参数。这也就是说,bind1st 和 bind2nd 函数把less<in...

2018-04-19 15:19:57 639

原创 ostream_iterator,istream_iterator

配接器的概念:配接器(adapters)在STL组件的灵活组合运用功能上,扮演着轴承、转换器的角色。Adapter事实上是一种设计模式。在设计模式中的定义是:将一个class的接口转换为另一个class的接口,使原本接口不兼容而不能合作的classes,可以一起运作。STL提供了许多应用于迭代器身上的配接器,IOStream Iterator所谓iostream iterators

2018-04-19 09:54:53 648

原创 最长公共前缀

查找字符串数组中的最长公共前缀给n个字符串,求出他们的最长公共前缀(LCP)举例:s1="abc";s2="abke"s3=abbf;则最长公共前缀s=ab;string longestCommonPrefix(vector &strs) { if (strs.size() == 0) return ""; string res = strs[0];

2018-04-18 20:30:32 669

原创 反转字符串

反转字符串问题描述:请编写一个函数,其功能是将输入的字符串反转过来。示例:输入:s = "hello"返回:"olleh"string reverseString(string &s) { size_t len = s.size(); auto c1 = s.begin(); auto c2 = s.end()-1; for (; c1 != s.begin(

2018-04-18 20:02:03 409

原创 LeetCode中移动零问题解决

移动0问题描述:给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。注意事项:必须在原数组上操作,不要为一个新数组分配额外空间。尽量减少操作总数。void moveZeroes(vect

2018-04-18 19:42:28 476

原创 加一问题求解

问题描述:给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。可以假设整数不包含任何前导零,除了数字0本身。输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例:输入:[1,2,3]输出:[1,2,4]解释:输入数组表示数字123,输出数组

2018-04-18 19:07:10 469

原创 旋转数组问题求解

旋转数组将包含 n 个元素的数组向右旋转 k 步。例如,如果  n = 7 ,  k = 3,给定数组[1,2,3,4,5,6,7],向右旋转后的结果[5,6,7,1,2,3,4]。解法一: 可以每次将数组中的元素右移一位,循环K次。由于向右旋转位数k可能大于数组元素个数n,所以通用的规律是:右移位数k=k%n。序列跟右移K位的结果是一样的。进而可得出一条通用的规律:右移K

2018-04-18 18:07:41 1086

原创 最大子数组问题

分治策略简单地来说,就是递归地求解一个问题,在每层递归中应用如下三个步骤:分解:将问题划分为一些子问题。子问题的形式与原问题一样,只是规模更小。解决:递归地求解出子问题。如果子问题的规模足够小,则停止递归,直接求解。合并:将子问题的解组合为原问题的解。注意:有时,除了与原问题形式完全一样的规模更小的子问题外,还需要求解与原问题不完全一样的子问题。此时,将这些子问题的求解看作合并

2018-04-18 15:21:24 335

原创 堆的实现代码详解

heap概述严格意义来说,heap不属于stl容器组件,它是priority queue的助手。这里要讲解的heap是binary heap,其实就是一种完全二叉树。我们以vector对tree进行表述,这种方法称为隐式表述法。push_heap算法template<class RandomAccessIterator>inline void push_heap(R...

2018-04-13 09:55:10 1643 1

原创 stl中list的sort()函数解析

list不能使用STL算法sort(),必须使用自己的sort()member function,因为STL算法sort()只接受RandomAccessIterator算法描述:template void list::sort() { sort(WKstl::less()); } template template void list::sort(Compare c

2018-04-08 15:35:00 955

原创 关于stl中list的reverse操作详解

reverse()用于反转容器中的元素template void list::reverse() { if (empty() || head.p->next = tail.p) return; auto curNode = head.p; head.p = tail.p->next; head.p->prev = nullptr; do { auto

2018-04-06 16:24:47 3980 1

原创 int和size_t

整型的每一种都分为:无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据,比如16位系统中一个short能存储的数据的范围为-32768~32767,而...

2018-04-05 11:46:49 2336

强制访问控制小程序

用MFC写的一个强制访问控制的小程序,需要自己创建txt文档

2018-03-16

空空如也

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

TA关注的人

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