C/C++学习
文章平均质量分 63
CY_TEC
Good good study, day day up~~~
展开
-
cpp vecotr clear 的时候,并不会清空当前变量的所属存储空间
cpp vecotr clear 的时候,并不会清空当前变量的所属存储空间。如果再次把原有的值,乱序传回去,会造成前面位置的值被覆盖。// clearing vectors#include <iostream>#include <vector>using namespace std;class node {public: node (int id):id(id){} int id = 0; };void print_out(std::vector<原创 2021-10-27 16:51:03 · 265 阅读 · 0 评论 -
[leetcode]详解Integer to Roman
Integer to RomanRoman与Integer的转换规则?From Wikipedia 现在用的罗马数字由7个字符表示,如下表: 字符 值 I 1 V 5 X 10 L 50 C 100 D 500 M 1,000罗马数字组成的值以相加(或相减)的形式得到,如: 罗马数字组合 结果 组合方式 CCVII原创 2016-06-15 12:01:03 · 908 阅读 · 0 评论 -
[leetcode]ZigZag Conversion
ZigZag Conversionzigzap的排列方式如下:原字符串:ABCDEFGHnumRows: 50.A1.B 7.H2.C 6.G3.D 5.F4.EnumRows:40.A 6.G1.B 5.F 7.H2.C 4.E3.DnumRows:30.A 4.E1.B 3.D原创 2016-06-22 15:08:05 · 476 阅读 · 0 评论 -
[leetcode] Nim Gam
Nim Gam这是道有意思的题目:桌子上有一些石头,两个人轮流拿走石头,每人每次只能拿1、2或3块石头,最后拿完石头的人获胜。而且,双方都以最优的方式拿石头。问,当石头数目给定,而且你先拿石头,判断你是否会赢。例如,当有4块石头,你先拿,那么无论你拿1、2或3块,你一定会输。开始觉得这应该是个回溯问题吧,一会就发现,我把问题想复杂了。。如果我先手,而且我会赢,那么石头的个数应该满足什么呢?原创 2016-06-23 10:31:48 · 518 阅读 · 0 评论 -
Guess Number Higher or Lower II
解题思想任取一个点做第一个点,计算被该点分开的两边的loss。这个点的loss加上两边loss中的最大值,就可以完全猜出两边的所有值。所以,遍历一遍所有点,得出以每个点为起点的时候,想要猜出两边所有的值的loss,然后找出最小值就可以了。 而最小问题有两个,一个是只有一个值的时候,那就返回0;另外一个是,有两个值的时候,返回左一值。实现#include <iostream>#include <st原创 2016-07-29 21:59:40 · 392 阅读 · 0 评论 -
通过代码学习关键字const
最近要面试,就来回顾一些基本知识。今天简略总结一下const的用法。代码实践//// main.cpp// learn_const//// Created by cslzy on 16/8/23.// Copyright © 2016年 CY. All rights reserved.// 参考:http://www.cnblogs.com/jiabei521/p/333567原创 2016-08-24 12:17:56 · 778 阅读 · 0 评论 -
代码实践几种常见算法
好久不看基础算法了。。。今天花点时间重新温习一下。 主要实现了下面几个排序算法:插入排序选择排序归并排序冒泡排序堆排序快速排序事实证明,一段时间不用,记忆就会出现偏差。今天写了一下,感觉对这几个算法又多了一些理解~程序实现//// main.cpp// sort_algorithm_learning//// Created by cslzy on 16/8/24.//原创 2016-08-25 23:40:48 · 636 阅读 · 0 评论 -
polymorphism.md
C++ 多态(Polymorphsim)多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说:允许将子类类型的指针赋值给父类类型的指针(一个接口,多种方法)。C++ 支持两种多态性:编译时多态性,运行时多态性。a、编译时多态性(静态多态):通过重载函数实现b、运行时多态性(动态多态):通过虚函数实现...原创 2018-10-09 12:35:47 · 204 阅读 · 0 评论 -
caffe 中添加新的 layer 和相应测试的过程
添加新 layer添加一个简单的 layer 可以参考 https://github.com/BVLC/caffe/wiki/Simple-Example:-Sin-Layer。几个主要的过程如下:添加 include/caffe/layers/your_layer.hpp添加 src/caffe/layers/your_layer.cpp添加 test/test_your_layer...原创 2018-11-22 09:42:14 · 678 阅读 · 0 评论 -
[leetcode]159. Longest Substring with At Most Two Distinct Characters
159. Longest Substring with At Most Two Distinct Characters.1 暴力法Time Limit Exceededclass Solution(object): def lengthOfLongestSubstringTwoDistinct(self, s): """ :type s: str...原创 2018-12-01 20:02:14 · 294 阅读 · 0 评论 -
C++逐字读字符串里面的字(中英文)
#include &amp;lt;iostream&amp;gt;#include &amp;lt;string&amp;gt;#include &amp;lt;assert.h&amp;gt;#include &amp;lt;vector&amp;gt;// c++ -O3 example.cpp -lcrfppstd::vector &amp;lt;原创 2019-02-22 19:09:39 · 2609 阅读 · 0 评论 -
Viterbi 算法学习(附代码和注解)
详细代码: https://github.com/SunnyCat2013/viterbi-algorithm研二在语音识别课上写过一次 viterbi 算法。最近在复习 HMM 的时候,感觉记不太清楚 viterbi 的实现了,就抽空又复习了一遍。例子是参考 李航的 《统计学习方法》 P186 10.3。如果不明白术语的话,看一下 P173 10.1。#include <iostre...原创 2019-03-10 18:18:54 · 921 阅读 · 0 评论 -
[leetcode]Contains Duplicate III
昨天在leetcode上做了这道题,利用了C++中map存储结构的特征。题意 Given an array of integers, find out whether there are two distinct indices i and j in the array such that the difference between nums[i] and nums[j] is at mo原创 2016-07-09 19:41:21 · 551 阅读 · 0 评论 -
C++实现K-means,聚类原理解析(并用在图片像素点聚类)
参考:http://nlp.stanford.edu/IR-book/html/htmledition/k-means-1.html原创 2016-05-21 09:14:19 · 10670 阅读 · 8 评论 -
c++判断文件夹是否存在,若不存在,调用linux命令创建它
c++中没找到直接判断文件夹是否存在的函数,只好自己写一个。。bool dir_file_exists(string dir, bool mkdir_flag){ char des_dir[255]; str2char(dir, des_dir); // 将string 写入到字符数组中 int state = access(des_dir, R_OK|W_OK);原创 2016-04-26 11:45:16 · 5610 阅读 · 0 评论 -
使用 vector保存mat
使用vector保存视频流时需要注意:void get_video_infor(string video){ VideoCapture capture(video); Mat frame; capture_and_frame_is_ok(capture, frame); // 自写程序,用来判断capture正确打开,并成功取得第一帧。 vector fra原创 2016-04-26 14:00:46 · 5524 阅读 · 4 评论 -
C++实现类,输入三个点坐标,生成一元二次方程(含推理过程)
今天实现一个类,通过三个点得到一个一元二次方程。主要实现三阶求逆,然后就可以很方便求得一元二次方程的三个系数。// Created by cslzy on 16/5/10.// Copyright © 2016年 CY. All rights reserved.//#include "heads.hpp"//////////////////////////////clas原创 2016-05-10 23:43:45 · 6097 阅读 · 1 评论 -
C++&OpenCV实现抠除(也可用于更换)证件照背景
朋友找我帮忙更换证件照背景,因为mac上没装合适的软件,就想用OpenCV搞一下。首先分析一下图片的情况:这次的目标是把肩、头上面的灰色背景除去(当然也可以换成其它颜色)。分析: 从肉眼可以看出背景和衣服、头发之间的色差还是挺明显的。转化成图像处理的语言就是,衣服和头发的像素值(RGB或者灰度值)都要比与它们相邻的背景区域大。思路:1. 从肉眼看来,从上往下像素原创 2016-05-20 13:39:08 · 11656 阅读 · 1 评论 -
C++指针与地址引用
看下面这个例子:#include int main(){ int *a=new int; // 初始化整型指针a,给a分配一个存储空间。 *a=4; // 给a指向的空间赋值 const int *b=a; // 把a的值赋给指针b,但(*b)是只读的类型。 //b++; // 指针是可以自增减的。 //(*b)++; // 错误,(*b)不原创 2016-05-16 11:13:02 · 579 阅读 · 0 评论 -
对整数数组进行二分查找;传数组指针会丢失数组大小信息。
二分查找是一个迭代(iterator)过程,它所搜索的对象是一个有序(这里用的升序)的数组。思想:1. 判断左右指针是否合理:若不合理则迭代结束;否则进行2。2. 判断以左右指针批向的点为边界时,中间点是否与查找点相等:若相等,找到目标,结束;否则,进行3。3. 判断左右指针与中间点的大小关系(经过2,已经判断过相等的情况):中间点大于目标,右指针移到中间点左一位置;中间点小于目标原创 2016-05-18 11:40:50 · 1481 阅读 · 0 评论 -
C++实现动态哈希,包括插入删除。并将结果写入到文件中。
之前学数据库管理系统,一个课程实验里面的一部分。在这个动态哈希之前写了两个版本,一个静态哈希,一个想写动态哈希结果写成了B树,囧。。。最近写的这个版本,主要实现了从一个文件中读取一系列整数,使用动态哈希的方法插入到『桶』中。并且,设计了数据结构,将『桶』里的信息和数据写到文件中。动态哈希有挺多blog介绍的,这里就不多介绍了。看完原理,自己动手写一下才能更好的理解这一原理。原创 2016-04-24 11:45:52 · 2327 阅读 · 0 评论 -
函数声明中地址引用的作用
感觉,使用地址引用"&"声明函数时,该函数内,所有对该变量的操作都会如实地作用到原先传入参数的那个变量。比如file: testAdress.hvoid test(int & a);file: testAdress.cppvoid test(int &a){ a = 10;}file: main.cppint main(){ int a = 2; cout<<a原创 2016-04-25 09:56:01 · 743 阅读 · 0 评论