经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 C++

做个地道的c++程序猿:copy and swap惯用法

如果你对外语感兴趣,那肯定听过“idiom”这个词。牛津词典对于它的解释叫惯用语,再精简一些可以叫“成语”。想要掌握一门语言,其中的“成语”是不能不学的,而希望成为地道的语言使用者,“idiom”则是必不可少的。程序语言其实和外语也很类似,两者都有自己的语法,一个个函数也就像一个个词汇,大部分的...[2021/6/7]

26.Qt Quick QML-RotationAnimation、PathAnimation、SmoothedAnimation、Behavior、PauseAnimation、SequentialAnimation和ParallelAnimation

1.RotationAnimation RotationAnimation也是继承于PropertyAnimation组件,但是它有点特殊,它只需要指定taget目标对象,并且不需要指定property,因为rotation就是要绑定的属性.并且它还多了个direction属性: direct...[2021/6/7]

三种单例模式的实现(C++)

  今天主要是学习了单例模式的三种实现,包括懒汉式、双重检查锁懒汉式和饿汉式。   首先,我们应该要理解单例模式的概念,单例模式简单的来说就是一个类只允许有一个对象,为此,我们可以知道必须要控制类的构造行为,故将构造函数私有化、同时将该类的对象 定义为该类的静态数据成员(因为构造函数被私有化...[2021/6/7]

27.Qt Quick QML-State、Transition

27.Qt Quick QML-State、Transition

1.State 所有组件均具有默认状态,该状态定义对象和属性值的默认配置。可以通过向States属性添加State组件来定义新状态,以允许组件在不同配置之间切换. 许多用户界面设计都是由State状态实现的,比如: 交通信号将根据其State配置来实现红黄绿灯交错亮灭. 在QML中,状态是在St...[2021/6/7]

Windows 下 MSYS2 环境配置和 MinGW-w64 C++ 环境配置

Windows 下 MSYS2 环境配置和 MinGW-w64 C++ 环境配置 1、简介 本文主要是 Windows 下 MSYS2 环境配置和 MinGW-w64 C++编译环境配置方法 2、下载 首先需要下载msys2的安装文件 官网链接:https: www.msys2.org/ ...[2021/5/31]

C++ 位图及位图的实现原理

C++ 位图及位图的实现原理

概念 位图就是bitmap的缩写,所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,该数据都是不重复的简单数据。通常是用来判断某个数据存不存在的 例如:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中 如果...[2021/5/31]

C++学习之移动语义与智能指针详解

移动语义 1.几个基本概念的理解 (1)可以取地址的是左值,不能取地址的就是右值,右值可能存在寄存器,也可能存在于栈上(短暂存在栈)上 (2)右值包括:临时对象、匿名对象、字面值常量 (3)const 左值引用可以绑定到左值与右值上面,称为万能引用。正因如此,也就无法区分传进来...[2021/5/31]

<c++控制台>用gotoxy()函数实现方向键进行选择

0.效果图   可以用方向键进行选择,看起来高级点而且可以防止乱输入。   1.引入: 这是我经常写的选择:   相信这应该也是很多人在控制台的时候会用的吧, 的确这个简单容易写。   但!是! 人要有理想,控制台也是 &n...[2021/5/31]

c++11-模板元实战

前言 黑魔法,应用场景 : 1.实现宿生语言 2.压榨机器性能 : 表达式模板,循环展开...特别是在高性能计算领域...可以获得媲美手工展开的高效代码 3.作为实现各种库的基本组件 :Stl,Boost,标准库都大量运用了模板元技术 很多人比较排斥这个东西...一些炫技模板元代码能看得...[2021/5/31]

基础知识:DFRduino UNO R3最全资料详解

一、概述篇: 1. 什么是DFRduino UNO R3? DFRduino UNO R3是一块基与开放原始代码的Simple i/o平台,並且具有使用类似java,C语言的开发环境。让您可以快速使用Arduino语言与Flash或Proce ing…等软件,作出互动作品。Arduino可以使用...[2021/5/31]

qt中出现error: C2059: 语法错误:“namespace”未定义等大量错误的问题

qt中出现error: C2059: 语法错误:“namespace”未定义等大量错误的问题

昨天下载了一个github上的qt工程,拿回来一编译出现了N多错误,但是工程明明是正确的,没有什么特殊的配置设置, 但是就是几乎所有的代码都在报错。 可以看到关于类的操作都有问题 ..\qtproce \mainwindow.cpp: warning C4819: 该文件包含不能在当前代码...[2021/5/31]

25.Qt Quick QML-500行代码实现"合成大西瓜游戏"

25.Qt Quick QML-500行代码实现"合成大西瓜游戏"

"合成大西瓜"这个游戏在年前很火热,还上过微博热搜,最近便玩了一阵还挺有意思的,所以研究了一下小球碰撞原理,自己亲自手写碰撞算法来实现一个合成大西瓜游戏.并支持任意大小布局,你想玩多大面积,就拖多大面积,只要面积够大,认真玩下去,合100个大西瓜都可以.哈哈~~~   1.游戏介...[2021/5/31]

有关C++中函数的查漏补缺

函数 函数基础 除了函数名,函数指针也可以使用运算符()运行函数 函数的类型指的是 ( 返回类型 + 形参类型 ) 存在于语句块中的对象叫自动对象 在函数里面的对象叫局部对象,定义时不给初值就执行默认初始化(内置类型其值是未定义的,使用会报错,不用会警告) 局部对象定义时加个static就成局部...[2021/5/31]

动态类型转换dynamic_cast

     C++Primer第十九章的动态类型转换部分讲的不是很清楚,于是自己查cpp的官方手册总结一下。 dynamic_cast < new-type > ( expre ion )   动态类型转换是可以安全的在继承体系将指针和引用进行向上、向下和横向...[2021/5/24]

我的改错日常----指针的使用

我的改错日常----指针的使用

指针使用守则以及建议 守则1:每一个指针调用前都要有所指向的空间(即地址); 守则2:要修改指针时需要传入更高一级指针; 建议:不要使用指针。 法则及真理详解 守则1:每一个指针调用前都要有所指向的空间(即地址); 当你新建一个指针的时候,都要记住需要为其分配空间,最常见使用malloc...[2021/5/24]

C++学习笔记之基础语法 - time-flies

目录基础语法switch和if区别枚举定义及作用域结构体数据耐齐--缺省对齐原则函数重载overload与C++Name Mangling指向函数的指针与返回指针的函数 基础语法 switch和if区别 先看一下switch和if汇编代码的区别: int a = 3; 00007FF6A...[2021/5/24]

C++学习笔记之指针引用 - time-flies

目录指针指针定义左值与右值指针数组与数组指针const与指针指针的指针NULL指针内存泄漏(Memory Leak)问题智能指针引用 指针 指针定义 指针定义的基本形式:指针本身就是一个变量,其符合变量定义的基本形式,它存储的是值的地址。对类型T,T是“到T的指针”类型,一个类型为T的变量能...[2021/5/24]

从effective C++中窥探C++11特性

     这几天在看effective C++3rd,这本书算是比较经典的一本入门C++的书了。虽然年代比较久远书中讲的好多模式已经被的新特性取代了,但是从这些旧的模式中可以了解到一些C++新特性设计的初衷,也算是窥探到了C++发展的一角吧。   所以在此记录一下学习过程中那些被C++11新...[2021/5/24]

C++学习笔记之编程思想 - time-flies

目录编程思想单例(Singleton)模式观察者(Observer)模式void*、NULL和nullptrC的类型转换C++的类型转换适配器(Adapter)模式泛型编程的思想模板函数模板类泛型递归 编程思想 单例(Singleton)模式 实现思路: Singleton拥有一个私有构造...[2021/5/24]

C/C++戏法(1)

本篇序言 作为一个并不严谨的C++开发者,接触了C++这么多年后,将C++看作是“C with Cla ”还是我的主观看法(夸张了,但八九不离十),许多优秀特性都是一知半解或者完全不知道,更何况有些特性还是ISO C++ 03(甚至更老版本)里面的。所以又拿起了曾经在Udemy买的只看了几节课的...[2021/5/24]

现代C++实战30讲,资深架构师带你编写高性能代码

作为一门多范式的通用编程语言,它适用的领域非常广泛,小到嵌入式,大到分布式服务器,到处可以见到 C++ 的身影。作为未来趋势的人工智能和机器学习,外衣是Python(模型描述),但是内核还是 C++(高 性能运算) 。   你可能听说过 C++ 的另一种评价:复杂、难学、难用...[2021/5/24]

C++基于armadillo im2col的实现

col2im的实现,这是im2col的逆过程 最近学习CNN,需要用到im2col这个函数,无奈网上没有多少使用armadillo的例子,而且armadillo库中似乎也没有这个函数,因此自己写了。 im2col的原理网上一大把,我懒得写了。 1. field<某类> fiel...[2021/5/24]

Qt 圆角按钮,面版自动布局

一、前言   在部分界面开发中,有时需要动态添加控件或按钮到面板中,在不需要时又需要删除该控件,故模仿视频开发中的设置屏蔽词,通过自己绘制的按钮与排布面板控件实现。   实现效果如下:      说明:   1、输入框可设置背景色、圆角角度、颜色高亮等   2、采用圆角输入框输入字符...[2021/5/24]

24.Qt Quick QML-Canvas和Context2D详解

24.Qt Quick QML-Canvas和Context2D详解

1.Canvas介绍 Canvas是一个允许绘制直线和曲线、简单和复杂的形状、图形和引用的图形图像。它还可以添加文本、颜色、阴影、渐变和图案,并执行低级别像素操作。Canvas输出可以另存为图像文件或序列化到URL。 例如,以下代码创建一个Canvas项目,该项目具有高度为100像素、宽度为20...[2021/5/24]

PAT乙级 1014 福尔摩斯的约会 (20 分)

PAT乙级 1014 福尔摩斯的约会 (20 分)

1014 福尔摩斯的约会 (20 分)   大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会...[2021/5/24]

C++中NULL与nullptr的区别对比

前言 在编写C程序的时候只看到过NULL,而在C++的编程中,我们可以看到NULL和nullptr两种关键字,其实nullptr是C++11版本中新加入的,它的出现是为了解决NULL表示空指针在C++中具有二义性的问题,为了弄明白这个问题,我查找了一些资料,总结如下。 一、C程序中的NULL ...[2021/5/17]

C++跳表项目源码分析

什么是跳表skiplist 一种基于链表list改造的数据结构,以空间换时间的方式加速链表的搜索。 具体定义这里不赘述,具体可看传送门:漫画小灰之跳表 本文主要赏析github上一个跳表项目的实现 传送门:一个使用C++编程实现的基于跳表的轻量级键值型数据库 项目中跳表实现都在一个头文件...[2021/5/17]

c++学习笔记

内存泄漏 内存泄漏(Memory Leak)是指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。 A memory leak is a particular ty...[2021/5/17]

正则表达式小结

     学习完C++Primer第五版第十七章第三小节正则表达式后小结一下:     1、regex的匹配机制 不能直接确定输入序列中总共有多少表达式正确匹配给定的正则表达式。   注意:不要误认为match的成员函数size()返回的是匹配值的数量,匹配成功时size返回的...[2021/5/17]

使用constexpr时遇到的小坑

最近在使用constexpr的时候无意中踩了个小坑。 下面给个小示例: #include <iostream> constexpr int n = 10; constexpr char *msg = "Hello, world!"; int main() { for ...[2021/5/17]

拷贝构造器(深拷贝与浅拷贝)

一. 概述 复习巩固学习过的知识C++拷贝构造器。 环境:Centos7 64位,g++ 4.8.5   二. 代码与验证 1. 构造与拷贝构造 拷贝构造器(copy constructor)的地位与构造器(constructor)的地位是一样的,都是由无到有的创建过程。拷...[2021/5/10]

c++中explicit与mutable关键字的深入探究

c++中explicit与mutable关键字的深入探究

今天说一说c++里面的两个关键字explicit和mutable。 1. explicit关键字 在写c++标准输入输出相关文章,查看iostream实现代码的时候,经常看到构造函数前面带有explicit关键字,那么它到底有什么作用呢。 explicit用来防止由构造函数定义的隐式...[2021/5/10]

c11 move 和 forward

c++11 : move forward 个人理解 右值引用(rvale references)和全局引用(universal references)的区别: T&&”有两种意思: 代表的是右值引用(rvalue reference)。就是他绑定到一个右值上,代表对象的移动来源...[2021/5/10]

C++基于文件流和armadillo读取mnist

C++基于文件流和armadillo读取mnist

发现网上大把都是用python读取mnist的,用C++大都是用opencv读取的,但我不怎么用opencv,因此自己摸索了个使用文件流读取mnist的方法,armadillo仅作为储存矩阵的一种方式。 1. mnist文件 首先避坑,这些文件要解压。 官网截图可知,文件头很简单,只有若...[2021/5/10]

C++实现二分法求方程近似解

二分法是一种求解方程近似根的方法。对于一个函数 f(x)f(x),使用二分法求 f(x)f(x) 近似解的时候,我们先设定一个迭代区间(在这个题目上,我们之后给出了的两个初值决定的区间 [-20,20]),区间两端自变量 x 的值对应的&...[2021/5/10]

C++ STL vector的模拟实现

1. vector的介绍和使用 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处...[2021/5/7]

C++中对象&类的深入理解

什么是对象 任何事物都是一个对象, 也就是传说中的万物皆为对象. 对象的组成: 数据: 描述对象的属性 函数: 描述对象的行为, 根据外界的信息进行相应操作的代码 具有相同的属性和行为的对象抽象为类 (cla ) 类是对象的抽象 对象...[2021/5/7]

C++ vector容器 find erase的使用操作:查找并删除指定元素

概念:容器、迭代器、算法 STL包括容器、迭代器和算法: 容器 用于管理一些相关的数据类型。每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求。容器自身可能由数组或链表实现,或者容器中的每个元素都有特殊的关键值。 迭代器 用于遍历一个数据集中的每个元素。这些数据集可能是容器...[2021/5/6]

总结了24个C++的大坑,你能躲过几个

前段时间给部门做了个C++专题的分享,主要分享了C++语言里一些常见的坑,在这里也分享给大家。 以下是本文目录: 首先说下C++和C语言有什么区别?分享一个我在知乎上看见的回答: C++ ≈ C with cla es, C with STL C:面向机器编程...[2021/5/6]

【C/C++】面相对象开发之封装

【C/C++】面相对象开发之封装

封装继承多态是面向对象程序开发的基础概念。是实现面向对象的基本要素。 封装 程序开发,最核心价值,是数据。 程序其实是读取数据,操作数据,保存数据等一系列操作。 那么经过良好组织过的数据,将使编程事半功倍。 高内聚,低耦合 说到数据,经常挂在嘴边的,就是这句高内聚,低耦合了。 这并不是...[2021/5/6]

Exercise_7_27的学习

最近在看《C++ primer》,做到了练习7.27的时候,遇到了一些问题,在此记录。 1    先贴代码 1.1    .h代码 #include <cstdlib> &nb...[2021/5/6]

《C++ primer》学习笔记整理

简介 本笔记目前已包含《C++ Primer》中的绝大部分内容,但尚有部分小节有所缺漏,如 19.1、19.2 节的笔记尚未整理,会持续更新。 本项目中的学习笔记是在学完一章内容后,对其要点进行提炼后记下的笔记。笔记内容包含我学习时认为需要记忆的知识点。 ...[2021/5/6]

基本并查集【LEMONni】

首先,我们可以听一个故事。 有许多的村庄,其实都是由一个人发展出来的,有些时候,我们想要知道两个人是不是一个村庄的,只要知道他的爸爸是哪个村庄的,这就是查找。 有一天,一个村庄的长老对另一个村庄的长老说:“欸,你们这个村庄就和我们一起吧!”但是我们知道,如果一个村子有两位长老肯定是会出问题的...[2021/5/6]

调用运算符与可调用对象

1 调用运算符   当用点运算符访问一个成员函数时,我们是想调用该函数。我们使用调用运算符( () )来调用一个函数。调用运算符是一对圆括号,里面放置实参列表(可能为空)。 item1.isbn() 2 可调用对象   对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用...[2021/5/6]

动态内存:delete作用于空指针

     在学习《C++primer 第五版》(中文版)中第12章动态内存与智能指针的时候遇到了一个习题,练习12.13: 练习 12.13:如果执行下面的代码,会发生什么? auto sp=make_shared<int>(); ...[2021/5/6]

拷贝构造函数第一个参数最好使用const

     拷贝构造函数的第一个参数要求是自身类型的引用,但是没有一定要求具有底层const属性即对常量的引用,但是使用时最好加上const,原因是我们可能在某些“不知道”的情况下对常量对象调用拷贝构造函数。   来看一个例子 cla HasPtr{ public: HasPtr...[2021/5/6]

C++雾中风景17:模板的非推断语境与std::type_identity

C++雾中风景17:模板的非推断语境与std::type_identity

乍一看这个标题很玄乎,但是其实这只是涉及一个很简单的CPP的模板推导的知识点。 笔者近期进行CPP开发工作时,在编译时遇到了如下的模板类型的推断错误:note: candidate template ignored: deduced conflicting types for paramet...[2021/5/6]

【C/C++】面相对象开发之封装

封装继承多态是面向对象程序开发的基础概念。是实现面向对象的基本要素。 封装 程序开发,最核心价值,是数据。 程序其实是读取数据,操作数据,保存数据等一系列操作。 那么经过良好组织过的数据,将使编程事半功倍。 高内聚,低耦合 说到数据,经常挂在嘴边的,就是这句高内聚,低耦合了。 这并不是...[2021/4/19]

类的构造函数学习笔记:显式调用构造函数生成临时对象,拷贝构造函数

类的构造函数学习笔记:显式调用构造函数生成临时对象,拷贝构造函数

  在学习《C++primer 第五版》(中文版)中第七章类的时候遇到了一个有意思的习题,原题如下: 练习7.43:假定有一个名为NoDefault的类,它有一个接受int的构造函数,但是没有默认的构造函数。定义类C,C有一个Nodefault类型成员,定义C的默认构造函数   本题的答...[2021/4/19]

C 动态内存分配

0x01为什么存在动态内存分配 我们已经掌握的内存开辟方式有: int val=20; 在栈空间上开辟四个字节 char arr[10]={0}; 在栈空间上开辟10个字节连续空间 但是上述的开辟空间方式有2个特点 1.空间开辟大小固定 2.数组在声明的时候,必须指定数组长度,它所需...[2021/4/19]

336
4
记录数:2645 页数:3/53首页上一页12345678910下一页尾页
加载更多