![](https://img-blog.csdnimg.cn/20191226161450910.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Cpp
文章平均质量分 53
学习cpp
dlvector
be better man,基础不牢,地动山摇!
展开
-
理解cpp的重载,重写,重定义
函数重载overload,重写override和重定义redefine。原创 2022-11-24 11:44:57 · 614 阅读 · 0 评论 -
竞赛回顾:脊柱疾病智能诊断大赛
先说结果:复赛27/3107,只能说一般般,没有打入前top20,并没有实现自己的目标。但是也是收获了不少经验,做一些总结和分享。失败的经验:尽早开始,尽快搭建自己的整套pipeline,后面再去增加的自己的idea,不断检验自己的idea.可以准备一些自己的pipeline模板,这样可以加速开发。想办法和大佬合作吧,和大佬一起合作。贴一张最后决赛的结果:其中GPU第一队,基本是大佬合集,看个人简介就知道,经常获得冠军的队。也是唯一一个实现map超过0.7的对。自己的实现思路:Unet原创 2020-11-08 23:05:35 · 2688 阅读 · 8 评论 -
C 库函数 - feof()
feof()判断文件结尾feof函数读取文件最后一个字符的时候依然会返回0,表明没有到达文件结尾,只有再往后读取字符(越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾。#include <stdio.h>#include <string.h>int main(){ char StrTmp[80]; memset(StrTmp,0,sizeof(StrTmp)); FILE *fp; fp=fopen("test.txt",原创 2022-04-18 21:08:19 · 829 阅读 · 0 评论 -
从汇编角度看编译器优化
化简内联函数指针(别名现象)矢量化循环内部优化结构体(直接对齐)STL容器数学运算编译器选项原创 2022-02-08 01:19:12 · 203 阅读 · 0 评论 -
cpp拷贝构造的3/5法则
来源由于拷贝控制操作是由三个特殊的成员函数来完成的,所以我们称此为“C++三法则”。在较新的 C++11 标准中,为了支持移动语义,又增加了移动构造函数和移动赋值运算符,这样共有五个特殊的成员函数,所以又称为“C++五法则”。也就是说,“三法则”是针对较旧的 C++89 标准说的,“五法则”是针对较新的 C++11 标准说的。为了统一称呼,后来人们把它叫做“C++ 三/五法则”。CPP拷贝构造这个命名,原来看c++ primer的时候,搞的我有点晕,今天梳理一下:这个命名可以看做 内容来源 +原创 2022-01-16 23:18:31 · 693 阅读 · 0 评论 -
导向滤波原理(Guided Filter)的一些剖析和实践
参考:知乎:导向滤波原理(Guided Filter)CSDN博客:双边滤波与引导滤波原创 2021-03-21 01:54:41 · 1075 阅读 · 0 评论 -
cpp源码STL之vector中push_back的时间复杂度分析
先说结论最好是O(1),最差是O(n), 均摊是O(1)。最好的情况,就是插入的时候,还有空余;最坏的情况,就是每次插入都满了,要重新分配内存。均摊复杂度,先看一下定义对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这一组操作放在一块儿分析,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时间复杂度比较低的操作上。推导这里就是按照定义,对插入九个数的过程进行了分析原创 2021-02-09 02:11:54 · 650 阅读 · 0 评论 -
opencv测试的基本代码
开始一直运行不正确,发现和标准代码有出入。发现是使用img.empty() == 0这个用法是错误的。#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <opencv2/opencv.hpp>#include "opencv2/highgui/highgui.hpp"#include <iostre原创 2021-01-20 23:29:51 · 2146 阅读 · 1 评论 -
C++ VS2015提示未加载 wntdll.pdb
报错信息:未加载wntdll.pdb,下面的框架可能不正确/或缺失,没有为ntdll.dll加载符号。出错原因:你的指针指向了错误的东西 / 你调用你的指针释放了奇怪的内容,和内存的调用有很大的关系,比如new的使用。案例:有问题的代码:#include<iostream>#include<ctime>#include<fstream>#include<string>#include<stack>#include<v原创 2020-11-02 16:11:44 · 2269 阅读 · 0 评论 -
leetcode10002
https://leetcode.com/problems/find-common-characters/class Solution {public: vector<string> commonChars(vector<string>& A) { // set<char> s; int cnt1[26]{INT_MAX}; memset(cnt1,1,sizeof(cnt1)); //原创 2020-10-15 00:05:08 · 271 阅读 · 0 评论 -
精通C++标准库功能:unique_ptr
运行结果如下:对于unique pointer的move属性来说,代码测试如下:移动属性:原创 2020-02-24 19:56:46 · 94 阅读 · 0 评论 -
精通C++标准库功能:写自己的智能指针
哎,要是能早点看到这个视频就好了,在面试小米开发的时候,就问到了这个问题,多思考,多阅读!这里的析构函数里面就有delete 函数来释放定义的指针。定义了如何防止复制,因为这是独占式的指针。拥有权的转移。...原创 2020-02-17 21:54:42 · 994 阅读 · 0 评论 -
cpp面试秘笈:第3章面试题19:this指针
代码输入:#include<iostream>#include<Windows.h>using namespace std;class Myclass {public: int data; Myclass(int data) { this->data = data; } void print() { //cout<<data&l...原创 2020-02-09 16:07:27 · 182 阅读 · 0 评论 -
指针函数、函数指针、指针数组、数组指针
1、函数指针(1) float(*def)[10]:def是一个二级指针,它指向的是一个一维数组指针,数组的元素都为float;(2) double(gh)[10]:gh是一个指针,它指向一个一维数组,数组元素都是double。(3) double(f[10])():f是一个数组,f有10个元素,元素都是函数指针,指向的函数类型是没有参数且返回double的函数。(4) int((b)[1...原创 2020-02-09 15:12:52 · 129 阅读 · 0 评论 -
cpp实现Python里面的for index,value in enumerate():的操作
cpp实现Python里面的for index,value in enumerate():的操作第二种方法:参考来自:在基于C ++ 11范围的for循环中查找元素的位置?原创 2020-02-03 01:51:42 · 3431 阅读 · 0 评论 -
Weekly Contest 174
这次一道题没写,哎,家里还是太吵了,没有办法静下心来!1341. The K Weakest Rows in a Matrix题目输入一个矩阵,按每行的和,从小到大排序,找出前k个最小的行。题目并不是很难,但是自己对一些函数不是很熟悉,导致没有写出来。自己的思路先使用accumulate(),对每一行求和。然后使用unordered_map对index对应一个值,这样可以对值排序,获得...原创 2020-02-03 01:36:51 · 123 阅读 · 0 评论 -
C++标准库功能:Xvalue,prvalue和Lvalue
学习cpp11之后,对左值和右值的分类。先看一个简单的分类:更加详细的分类。这里我把Xvalue(ex)翻译成将亡值吧,直观好理解。Prvalue(pure right value)是纯右值。glvalue(泛左值) = lvalue (传统意义上的左值)+ xvalue(消亡值,通过右值引用产生)rvalue (传统意义上的右值) = prvalu...原创 2020-02-01 22:12:42 · 2596 阅读 · 0 评论 -
C++标准库功能:std::move
课程链接:https://www.bilibili.com/video/av17395906?p=4第一个如何使用更好的使用右值和左值写函数。右值,就是将亡值,临时值,马上要被销毁的值。在定义函数的时候,写两个原型。利用cpp的多态性,58行的代码是对左值的处理。59行是对右值的处理。一个惯用原则值传递+移动这个原则是为了解决,每一个函数要写一遍左值和一遍右值,显得很累赘。问...原创 2020-02-01 21:19:28 · 190 阅读 · 0 评论 -
C和C++程序员面试秘笈测试题目3.10
第三章第十题,答案解析有些问题,感觉很奇怪,自己跑了一下,果然有问题。代码:#include<stdio.h>#include<Windows.h>int main(){ char a[] = "hello,world!"; char * ptr = a; printf("%c\n", *(ptr + 4)); printf("%c\n", ptr[4]);...原创 2020-01-31 19:07:36 · 191 阅读 · 0 评论 -
cpp中sizeof的总结
测量普通变量被测量valuechar1short2int4double8数组数组内容个数+1(结尾有“\0”)传入函数的数组4,是一个指针,指向这个数组测量类对象被测量value空1char1,字节对齐short2,字节对齐int4,字节对齐double8,字节对齐普...原创 2020-01-27 19:26:08 · 601 阅读 · 0 评论 -
万门cpp作业:写模板函数实现find_all和sort排序
sort 排序#include<iostream>#include<string>#include<vector>using namespace std;template<class T>void sort(T& input) { int l = input.size(); for (int beg = l - 1; beg...原创 2020-01-13 21:43:51 · 265 阅读 · 0 评论 -
STL的红黑树实现原理
红黑树本质是一个二叉搜索树,每个节点要么是红色,要么是黑色,加上一些特性,变成平衡二叉搜索树。红黑树的插入、删除、查找操作的时间复杂度是 O(logN)。红黑树的高度在 [logN, logN+1]。规则 1:每个节点不是红色,就是黑色;规则 2:根节点必须是黑色;规则 3:如果一个节点是红色,那么它的孩子必须是黑色;规则 4:任何一个节点向下遍历到其叶子节点,所经过的黑色节点必须相等...原创 2020-01-11 16:31:25 · 354 阅读 · 0 评论 -
万门cpp课程作业:std的map实现原理
先上一张侯捷老师的图map基本就是对红黑树的重新包装我们看代码:map 的结构体定义:template <class _Key, class _Tp, class _Compare, class _Alloc>class map {public: typedef _Key key_type; // 键值类型 typedef...原创 2020-01-10 17:08:08 · 865 阅读 · 0 评论 -
万门cpp课程作业:模板元编程实现fibinacci
第一个自己写的代码:#include<iostream>using namespace std;template<double n>struct fbonacci { enum {RET=fbonacci<n-1>::RET+fbonacci<n-2>::RET};};template<>struct fbonacc...原创 2020-01-09 00:03:05 · 147 阅读 · 0 评论 -
七月cv_作业1:读入文本数字图像
给一张数字图00000000000000011000000000000000000000000001111111100000000000000000000000111111111110000000000000000000001111111111110000000000000000000111111111111110000000000000000001111110001111100000...原创 2020-01-08 13:10:51 · 113 阅读 · 0 评论 -
STL解析:complex
#ifndef __MYCOMPLEX__#define __MYCOMPLEX__class complex;complex&__doapl(complex* ths, const complex& r);complex&__doami(complex* ths, const complex& r);complex&__doaml(com...原创 2020-01-03 14:13:04 · 262 阅读 · 0 评论 -
万门cpp课程作业:实现复数类
自己开始写的代码,想用模板来实现,但是发现模板使用还是有些问题。#include<iostream>#include<ostream>using namespace std;template<class T>class Complex{ T real; T imag;public: Complex(T r, T ima) :real(r),...原创 2020-01-03 13:24:16 · 311 阅读 · 0 评论 -
万门cpp:书本推荐
学习STL,boost库开源代码库:EOS,比特币公链项目120M课上内容没有讲解的内容:二十秒法则:如果一个概念或者语法,知识点,花一点点时间就可以查到,那么就不要花太多时间取研究核学习,重点关注那些值得学习的东西:算法,原则,思想。推荐学习一门函数式编程shcme,大一大二的时候。...原创 2019-12-30 15:06:01 · 250 阅读 · 0 评论 -
万门c++课:模板
如何查看源码编译之后,模板是怎么展开的,可以使用下面这句命令:原创 2019-12-29 18:47:34 · 141 阅读 · 0 评论 -
万门C++课:const
终于在这里学会了如何识别const的意义,上次看c++primer,就一直没看懂大佬教的方法:从后往前读函数输入的位置,加const,就是暗示这个值在函数内不会改变。基本内置类型包括算术类型和空类型。比如 内置 的 int,没有必要加const...原创 2019-12-28 11:09:52 · 157 阅读 · 0 评论 -
万门c++:内联函数
typedef 原名字 新名字内联函数;为什么需要?优点:原创 2019-12-27 21:58:01 · 114 阅读 · 0 评论 -
万门c++:存储类
四种存储类:寄存器类:这个类,主要是为了提高性能。但不是所有类别都可以放到register里面,有取地址的变量,就不可以放到register里面,因为汇编里面没有取地址操作。变量的存储分为三个区,其中局部变量在heap 和stack里面。还有一个区是全局变量的。(图中右上角)static会把局部变量升级到全局变量区。全局变量的生命周期取决于程序运行时间。程序结束,全局区才会销毁...原创 2019-12-27 21:15:02 · 126 阅读 · 0 评论 -
万门c++课:头文件
头文件应该放的东西不要把定义放在头文件里面。主要原因是因为:这些头文件,在预编译的时候,就是完整的复制进cpp文件(宏展开)原创 2019-12-27 20:48:31 · 117 阅读 · 0 评论 -
万门c++课:float
float 单精度总共4个比特,32位:自己的总结:由三部分组成:正负+小数点位数+二进制数字(整数+小数)双精度double原创 2019-12-27 20:42:13 · 144 阅读 · 0 评论 -
cpp学习:测试时间性能与查看汇编带代码
添加测试时间的代码:#include<iostream>#include<memory>#include<chrono>class Timer {public: Timer() {//Timer构建时开始计时 m_StartTimePoint = std::chrono::high_resolution_clock::now(); } ~T...原创 2019-12-26 17:00:18 · 279 阅读 · 0 评论