
C++
littletomatodonkey
work and life balance
展开
-
生日礼物(京东2016实习生真题)
生日礼物(京东2016实习生真题)思路最主要的是最长递增子串的生成,同时需要保存中间结果,便于之后找到结果子串的index。首先按照宽度进行排序,之后再高度生成递增子串,对于生成的子串,如果连续2个物体的w相同,则不对其进行计数。参考链接:http://www.cnblogs.com/dshn/p/8619241.html代码#include <cstdlib&g...原创 2018-07-08 00:12:20 · 540 阅读 · 0 评论 -
C++输入输出流
输入输出流说明:IO对象无拷贝或者赋值的操作,有许多标志位,可以判断当前IO的状态控制台输入输出主要是cin与cout标准库将cin与cout关联在一起,当使用cin的时候,cout的缓冲区也会被刷新文件输入输出文件模式分类 in:以读方式打开out:以写的方式打开app:每次写操作前,都定位到文件末尾ate:打开文件后,立刻定位到文件末尾...原创 2018-05-02 23:19:27 · 467 阅读 · 0 评论 -
C++函数
函数参数传递C++有两种参数传递方式:值传递,引用传递,值传递是根据传入的参数重新初始化一个对象,然后对这个对象进行修改,这个不会影响原来的值;引用传递是传入变量的引用,在函数中修改该引用,就可以直接对原始变量进行修改(如果没有被const关键字修饰的话)如果需要修改变量,而不使用返回值的形式,可以使用指针传参(修改指针所指的对象)或者是引用传参返回值对于返回值为v...原创 2018-05-02 21:06:47 · 212 阅读 · 0 评论 -
C++类相关的操作
C++类操作相关类的构造函数构造函数与类名相同,没有返回值,参数列表可以传入多组参数,即构造函数不唯一,下面使用的是初始化成员列表,即可以在冒号后面,使用括号的方法对其进行初始化注意:在定义类的时候,使用=号时,并不是赋值(assignment),而是调用了构造(constructor)函数MyClass001.h#ifndef MYCLASS001_H#define MY...原创 2018-04-25 00:30:23 · 1720 阅读 · 0 评论 -
C++表达式
C++表达式主要是参考C++ primer书籍上的一些内容,加上一些找的其他资料与自己写的代码重载右键头->详细解释:https://blog.youkuaiyun.com/friendbkf/article/details/45949661二维数组引用二维数组中,每个元素都是一个一维数组。但是如果在使用中,直接取其特定的值,会将该值视为指针(指向一个一维数组),而如果...原创 2018-05-02 16:44:47 · 808 阅读 · 0 评论 -
C++随机数
C++随机数C中的做法之前都是使用rand()函数进行无符号随机整数的生成,如果需要生成对应的范围或者浮点数,需要自己进行一些修改,unsigned随机数生成的方法如下所示。在使用中,为了使得每次运行的结果都不一样,我们将当前时间对应的无符号数作为初始化的种子。codevoid randOld(){ // 按照时间来初始化种子,保证每次结果不一样 srand(...原创 2018-05-09 11:56:15 · 397 阅读 · 0 评论 -
C++模板与泛型编程
模板与泛型编程OOP和泛型编程都能处理在编写程序时不知道类型的情况,不同之处在于:OOP能处理在程序运行之前都未知的情况;而在泛型编程中,在编译时就能知道类型。这里有个类模板的例子,实现了矩阵的基本运算:https://blog.youkuaiyun.com/u012526003/article/details/80116295定义模板编译器可以推断出函数模板的类型,即根据传参类型进行推断...原创 2018-05-09 10:48:28 · 519 阅读 · 0 评论 -
kmp算法
简介有些地方讲的已经很详细了,在这里只给出参考链接参考链接 next矩阵的生成,启发很大:http://www.cnblogs.com/c-cloud/p/3224788.html整个kmp算法流程,读完就懂:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html...原创 2018-04-15 00:14:10 · 199 阅读 · 0 评论 -
蓝桥杯 错误票据
题目链接地址http://lx.lanqiao.cn/problem.page?gpid=T28注意我自己之前写的代码不需要ctrl+z结束输入,而蓝桥测评系统上应该是ctrl+z之后enter结束输入,因此无法结束,一直报错,在这里贴出自己的代码和别人的,当ctrl+z用于结束输入当前的while输入循环,enter表示从输入的缓冲区获取字符。#include<std...原创 2018-03-29 21:25:39 · 512 阅读 · 0 评论 -
C/C++函数指针与函数指针数组的使用
说明函数指针是声明一个指针p,它指向一个函数,需要指定指针的参数类型与返回值类型函数指针数组则是类似于数组的形式,只不过形式与函数指针类似参考链接:https://blog.youkuaiyun.com/armyshen/article/details/8799310代码#include<stdio.h>#include<string.h>#include &l...原创 2018-03-29 18:51:11 · 797 阅读 · 0 评论 -
C++容器基本介绍
C++中的容器stl库中有许多十分常用的容器顺序性容器vectorvector是动态数组,在内存中有连续的存储空间,因此可以快速随机访问,但是插入和删除的效率比较慢,vector会初始化一个capacity,如果size大于等于这个值的时候,就会重新申请一份连续的内存空间,其大小是目前连续空间的2倍。这种方式性能消耗较大。vector有一个clear函数,用于清空数...原创 2018-03-13 21:50:57 · 471 阅读 · 0 评论 -
第七届蓝桥杯大赛个人赛省赛C语言A组题目答案
第七届省赛题目注意简单的题目,只是写了一个函数实现功能,对于复杂的题目,会给出全部代码1题目网友年龄某君新认识一网友。当问及年龄时,他的网友说:“我的年龄是个2位数,我比儿子大27岁,如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”请你计算:网友的年龄一共有多少种可能情况?提示:30岁就是其中一种可能哦.代码void test01...原创 2018-03-06 16:56:17 · 9997 阅读 · 5 评论 -
C++顺序型容器使用中一些注意的地方
顺序型容器使用中一些注意的地方vector的push_back与emplace_back相对于push_back,emplace_back在添加元素时不会进行额外的复制或者拷贝工作参考链接:http://en.cppreference.com/w/cpp/container/vector/emplace_back上面的特点是左值引用(&)与右值引用(&&)...原创 2018-05-04 19:50:39 · 189 阅读 · 0 评论 -
C++关联型容器(主要介绍了有序关联容器)
关联型容器使用中一些注意的地方主要有map与set,衍生出unordered与multi版本的mapmap中每个元素都是一个[key,value]的pair对象,可以通过first与second访问key和value,在操作的时候,可以对value进行修改,但是不能对key进行修改。multiset/multimap对于map与set,其中没有重复元素,因此可...原创 2018-05-05 10:17:16 · 890 阅读 · 0 评论 -
C++动态内存
动态内存动态内存与智能指针C++中使用new和delete进行动态内存的管理,但是有时候难以确保内存分配或释放的准确性。针对这个问题,标准库中提供了智能指针,可以自动释放所指的对象,shared_ptr允许多个指针指向同一个对象。shared_ptr进行拷贝或者赋值时,每个shared_ptr会记录有多少个其他的shared_ptr指向相同的对象,可以认为每个shar...原创 2018-05-05 22:45:11 · 166 阅读 · 0 评论 -
顺时针打印数组
顺时针打印数组思路依次按照四个方向遍历一次,如果计数值到达数组个数,则退出,无需考虑其他的停止条件。代码#include <cstdlib>#include <string>#include <iostream>#include <fstream>#include <vector>#include <...原创 2018-07-07 10:34:57 · 803 阅读 · 0 评论 -
动态规划求解01背包问题-买糖果(京东实习笔试题)
网址链接http://exercise.acmcoder.com/online/online_judge_ques?ques_id=3812&konwledgeId=41参考链接:http://exercise.acmcoder.com/online/online_judge_sub_list思路之前想的是如果使用背包问题求解,则问题的空间复杂度很大,这个只包含1和2两...原创 2018-07-06 16:32:52 · 690 阅读 · 0 评论 -
Floyd算法求最短路径
代码// Floyd算法求最短路径#include <cstdlib>#include <string>#include <iostream>#include <fstream>#include <vector>#include <sstream>#include <unordered_map>原创 2018-07-06 08:53:38 · 1415 阅读 · 0 评论 -
linux下多线程C++运行时间统计
linux下多线程C++运行时间统计CMakeLists.txt下面所有的代码的CMakeLists.txt如下cmake_minimum_required(VERSION 2.8)list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)# else can not fin nullptr and...原创 2018-06-29 23:12:16 · 8375 阅读 · 1 评论 -
贝壳找房计数比赛之排列组合计算
排列组合计算-涉及到溢出与取模公式递归,使用Cmn=Cmn−1+Cm−1n−1Cnm=Cn−1m+Cn−1m−1C_n^m=C_{n-1}^m+C_{n-1}^{m-1}进行求解,这种方法在数据量很小时,会有效,但是在n很大时,效率很低,在这里代码typedef long long ll;int MOD = 1e9 + 7;ll getAcc(ll num, ll choo...原创 2018-06-17 20:27:13 · 736 阅读 · 0 评论 -
C++三种线性排序算法
基数排序基于比较的排序方法无法做到在O(N)O(N)O(N)的时间复杂度内完成对数据的排序,但是基数排序不是基于比较的排序方法。基于排序的原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的平均时间复杂度为O(dN)O(dN)O(dN),d是数据的位数,空间复杂度是O(kN)...原创 2018-05-16 10:34:04 · 522 阅读 · 0 评论 -
C++面向对象
面向对象相同主题的一篇参考链接:https://blog.youkuaiyun.com/u012526003/article/details/80116295定义基类和派生类成员函数和继承C++中,基类需要将其两种成员函数区分开 基类希望其派生类进行覆盖的函数基类希望派生类直接继承而不改变的函数对于上述前者,基类通常将其定义为虚函数,用virtual关键字进行区分,当调用虚函数...原创 2018-05-08 10:57:44 · 686 阅读 · 0 评论 -
C++ 拷贝控制
拷贝控制拷贝、赋值和销毁有5种拷贝操作:拷贝构造函数,拷贝赋值运算符,移动构造函数,移动赋值运算符和析构函数拷贝构造函数拷贝构造函数的第一个参数必须是引用类型,为了明确避免在构造函数中修改传参,我们一般也令其为const,形式为Foo(const Foo&)如果用户没有自己定义拷贝构造函数,编译器会为我们定义一个,但是涉及到内存空间管理等问题时,默认的拷贝构...原创 2018-05-07 08:55:54 · 225 阅读 · 0 评论 -
C++ exception
C++ exceptionC++标准库定义了一套异常体系,有一个exception的抽象基类,其中有一个const char* what()的虚函数,用于表示被抛出异常的文字描述我们可以新建自己的异常类,继承于这个抽象基类,那么我们新建的类就可以被任何打算捕获抽象基类的代码所捕获,程序复用性较好。对于自己新建的异常类,我们需要重载实现其what函数,因为基类中这个函数是虚函数try{}...原创 2018-04-28 13:38:12 · 652 阅读 · 0 评论 -
C++类模板example
C++类模板example这里主要是参考了Essential C++书籍中的做法,对Matrix类做了一个简单的实现主要涉及的内容有:类模板、函数模板、操作运算符重载,友元函数等注意有些运算符可以有多种实现方式,比如+,*,可以实现类内的一元操作符重载,也可以以友元函数的形式实现二元操作符的重载(这里采用的方式)在类中声明友元函数模板时,需要重新使用一个模板名,否则会出现un...原创 2018-04-28 09:41:53 · 1151 阅读 · 0 评论 -
C++类的继承与多态
C++面向对象面向对象最主要的2个主要特质是:继承与多态漫游默认情况下member function的解析实在编译时动态进行。如果需要其在运行时动态进行,我们需要在其声明前加入virtual关键字。如果有一个类A,是类B的基类,则在定义出一个类B的对象时,A与B的构造函数与析构函数都会被执行(执行次序颠倒)。如果有多级派生,则会依次调用基类的构造与析构函数,直到没有基类为...原创 2018-04-28 09:08:18 · 393 阅读 · 0 评论 -
leetcode-Word Ladder II
leetcode-Word Ladder II题目地址:https://leetcode.com/problems/word-ladder-ii/description/从begin开始的DFS的解法一开始想到这种解法,提交的时候,对于很长的wordList(测试案例中,长度为95时,肯定会出现TLE),会出现TLE的情况,代码如下class Solution {pub...原创 2018-03-13 09:45:39 · 238 阅读 · 0 评论 -
C++map与unordered_map类
实现机理map与unordered_map是构建一个key-value的键值对集合,集合中不存在重复的key。map是使用红黑树实现的,其中的所有元素都是有序的,unordered_map是使用哈希表实现的,其中的所有元素是无序的map优点它是使用红黑树实现,因此红黑树的很多优点也就是map的优点,比如说它的查找、插入与删除的最坏时间复杂度为O(log(N))O(log...原创 2018-03-12 08:56:32 · 869 阅读 · 0 评论 -
C++函数传参、函数指针的定义以及调用
C++函数传参、函数指针的定义以及调用原创 2016-11-01 00:12:43 · 1529 阅读 · 0 评论 -
C++继承
C++继承原创 2016-11-12 19:34:04 · 351 阅读 · 0 评论 -
C++ try catch的问题
C++ try catch的问题原创 2016-10-31 22:31:14 · 770 阅读 · 0 评论 -
C++重载运算与类型转换
C++重载运算与类型转换原创 2016-11-11 16:30:38 · 337 阅读 · 0 评论 -
C++拷贝、赋值与销毁
C++拷贝、赋值与销毁原创 2016-11-08 02:48:00 · 498 阅读 · 0 评论 -
C++ 关联容器
C++ 关联容器原创 2016-11-05 11:53:50 · 291 阅读 · 0 评论 -
C++ 泛型
C++ 泛型原创 2016-11-04 00:09:17 · 456 阅读 · 0 评论 -
C++容器适配器使用
C++容器适配器使用原创 2016-11-03 22:13:20 · 543 阅读 · 0 评论 -
C++在windows下播放wav音频文件
C++在windows下播放wav音频文件原创 2016-10-13 12:14:11 · 8044 阅读 · 3 评论 -
c++获取时间并生成字符串
c++获取时间并生成字符串原创 2016-10-13 12:08:58 · 12283 阅读 · 1 评论 -
C++ cin输入的问题
C++ cin输入的问题原创 2016-11-03 16:45:39 · 478 阅读 · 0 评论 -
二叉寻找数的实现
C++二叉寻找数的实现原创 2016-11-17 00:34:22 · 382 阅读 · 0 评论