C++和C语言
文章平均质量分 61
很好,good
赛马丸子
这个作者很懒,什么都没留下…
展开
-
宏定义知识点总结【转发】
简介转载 2022-09-29 09:51:40 · 307 阅读 · 0 评论 -
头文件和编译的问题
2原创 2022-09-28 23:17:00 · 1882 阅读 · 0 评论 -
C++ 面试题目记录
python面试和c++面试相关记录原创 2022-09-14 22:16:08 · 274 阅读 · 0 评论 -
static 总结
q原创 2022-09-12 17:46:43 · 218 阅读 · 0 评论 -
const 总结
w原创 2022-09-12 12:14:07 · 214 阅读 · 0 评论 -
Cpp fprint() 指定输出位数
%m.nf:输出共占m列,其中有n位小数,若数值宽度小于m左端补空格。举例如下:若希望小数点后面保留7位,小数点前面最多为3位,则一共是10位,m=10, n=7for (i=0;i<100;i++){ fprintf(file_, "%10.7f\n", a[i]);}更多输出形式可以参考该链接...原创 2021-12-04 21:26:39 · 531 阅读 · 0 评论 -
了解“预编译、编译、汇编、链接”这四个过程对你有很大帮
转自:胡薇http://m.elecfans.com/article/663750.html如有侵权,告知立马删除 ...转载 2019-07-09 20:56:05 · 310 阅读 · 0 评论 -
VTK+VS2019(或其他版本均可) 傻瓜式一站式 配置
cmake 下载安装下载VTK打开cmake,定位到VTK包解压目录下,含有CMakeList.txt文件的父目录下。Cmake的生成目录,先写一个预计但是暂时还不存在的目录,如VTK原目录对应下,写一个还未生成的文件夹source code和binaries都定位和写好后,点击configure; 此时CMake 会跳出来询问:这是一个存在的文件夹,是否应该新建? 点击是后,Cmake会让你选择speficy the generator for the project, 选择一个与自己window.原创 2020-06-18 12:42:47 · 12551 阅读 · 44 评论 -
static_cast VS dynamic_cast
1. static_cast1.1使用方法static_cast<new_type>(expression)new_type为目标数据类型,expression为原始数据变量或者表达式。该操作相当于c语言的强制转换,将expression的类型强制转换为new_type类型,用来强迫隐式转换如non-const对象转为const对象,编译时检查,用于非多态的转换,可以转换指针及其他,但没有运行时类型检查来保证转换的安全性.。它主要有以下几种用法:① 用于类层次结构中基类和派生类转载 2021-04-02 21:51:01 · 272 阅读 · 0 评论 -
error LNK2019: unresolved external symbol “public 错误的出现原因.
总结一下自己看到的几个解决办法:类中有声明但是没有实现的函数;第2个方法倒是真的解决了我的问题。原创 2020-12-16 10:03:41 · 678 阅读 · 1 评论 -
Unhandled exception at 0x00007FFC94723B29 in xx.exe: Microsoft C++ exception: nlohmann::deta
如果你在用C++ 读取Json,那么报错一定是你的json文件格式定义的不对,建议用VScode打开你的json文件,VScode会自动在你有错误的地方标出来,Notepad++没有这功能。我的错误是在一个数组的最后一个元素后面还加了逗号,这是不对的,应该去掉。...原创 2020-12-07 19:41:46 · 790 阅读 · 0 评论 -
C++实现回调功能的三种方法
笼统来的把以下三类均可实现 把函数作为另一个函数的参数的形式 功能的叫做回调函数指针int (*fun1)(int,int)int fun2(x,y,int(*fun1)(int,int)){...}回调函数#include <iostream>#include <functional>std::function<int(int, int)> ComputeFunction;int (*compute_pointer)(int, int)原创 2020-11-11 13:28:28 · 564 阅读 · 0 评论 -
CPP 7-1 STL总述
泛型编程: 使用模板template为主要编程手段来编写代码标准模板库就是用泛型编程的编码方式所写的一套供我们非常方便使用的一套库;推荐图书: 概览,当字典来查。数据结构中的栈(后进先出)、队列和链表这三个东西要重点关注;对树,图,和散列表有一点印象就好要不要把算法和数据结构的知识好好学一学?:除非你未来的工作需要用到各种数据结构的算法,否则不建议详细研读,能拿来用就可以STL的组成部分(1) vector,list,map等(2) 迭代器(3) 一些函数功能(4) 分配器:7章的内存高原创 2020-11-01 20:48:42 · 155 阅读 · 0 评论 -
正则表达式初级学习
1. 普通字符[ABC]: 匹配所有 A,B, C 三个字符。[^ABC]:除了A,B,C 三个以外的所有字符[A-Z][a-z]:所有大写字符, 小写字符[0-9]:所有数字[\s]:\s匹配所有空白符,包括空格,制表符,换页符,等价于[\f\n\r\t\v];[\S]: 所有非空白符,包括换行,等价于 [^\f\n\r\t\v];[\w]:匹配字母,数字,下划线[A-Za-z)0-9_]2. 非打印字符\f 换页符\n\r 回车符\t 制表符\v 垂直制表符\cx 匹配原创 2020-10-31 16:55:07 · 542 阅读 · 0 评论 -
C++ 5-4 weak_ptr语法
//weak_ptr 类模板/*auto p1=make_shared(100);weak_ptr pw=p1;//weak_ptr指向shared_ptr内容,不会让强引用计数增加,但是会增加弱引用计数。但是弱引用计数对对象生存周期没有影响//lock()功能:检查weak_ptr所指向的对象是否存在,如果存在,返回一个指向该对象的shared_ptr,且引用计数加1;如果不存在,则返回一个空的shared_ptrauto p2=pw.lock();if(p2!=nullptr){…}原创 2020-09-21 21:40:48 · 449 阅读 · 0 评论 -
智能指针 5-7
二、unique_ptr自定义删除器问题三、智能指针总结智能指针的设计思想: 帮助释放内存,防止忘记释放时产生内存泄漏;void fun(int a){ int* test=new int(); if(a) { //此处产生内存泄漏,因为在满足if条件时,没有delete test,需加上下面一行: //delete test; return; } delete test; return;}智能指针的选择不定义删除器时,unique_ptr更快,尺寸和裸指针一原创 2020-09-16 14:30:18 · 89 阅读 · 0 评论 -
C++函数指指针
一、函数指针的声明和使用1. 最简单的声明,最直接常用的定义方法指向某一函数类型的指针不能指向别的函数;可以为其赋nullptrdouble max(double a, double b){ if(a>b){return a;} return a;}int main(){ double (*fun)(double&, double&);//f2为指向该函数类型的指针 fun=max;//这两种均可 fun=&max; return 0;}//*原创 2020-09-16 14:07:08 · 189 阅读 · 0 评论 -
C++从入门到精通 5-6 unique_ptr概述和常用操作
5-6一、unique_ptr概述常规初始化使用智能指针一般最先考虑unique_ptr;独占式概念:同一个时刻,只有一个unique_ptr指针指向这个对象;格式://(一)常规初始化//(二)make_unique函数,c++14才出现,不支持自定义删除器unique_ptr<int> p1;//可以指向int对象的一个空智能指针unique_ptr<int> p2(new int(10));//指向一个值为10的int对象unique_ptr<i原创 2020-09-12 21:15:18 · 143 阅读 · 0 评论 -
C++入门到精通-第五章-5-2&5-3智能指针shared_ptr
三、shared_ptr基础//错误shared_ptr pi=new int(200);//错误范例,隐式类型转换,不被允许!shared_ptr<int> sp(new int(100));//正确,显式类型转换shared_ptr<int> function(int value)//返回智能指针的函数{ return shared_ptr<int>(new int(value));}智能指针,不用delete,不能指向裸指针。错误示范:in原创 2020-09-10 10:18:55 · 261 阅读 · 0 评论 -
DLL之__declspec(dllexport)与__declspec(dllimport)用法
DLL之__declspec(dllexport)与__declspec(dllimport)用法翻译 2020-08-12 20:47:05 · 177 阅读 · 0 评论 -
int _tmain()和 int main()的区别
转载 2020-08-11 09:51:54 · 582 阅读 · 0 评论 -
用depends 来解决dll文件缺失等相关的问题 使用方法
depends or dependency walker 下载了不会用?As we all know, depends is used to find out which dll your dll or exe is missing. It’s an excellent software because it could show you the complex relationship between so many dll files. If your dll missed an another r原创 2020-06-30 17:45:37 · 7556 阅读 · 0 评论 -
VS需命令行运行的调试方法
命令参数在VS中向命令行添加参数,即向main()函数传递参数的方法:右键单击要 添加参数的工程–>属性–>配置属性–>调试,在右侧“命令参数”栏输入要添加的参数,各参数间用空格分离直接用cmd输入参数的方法为该链接...原创 2020-06-30 17:19:15 · 3357 阅读 · 0 评论 -
3分钟搞定--如何判断dll,lib,exe是32位还是64位
利用VS自带的dumpbin.exe即可,不用下载!不用下载!用法:利用everything找到dumpbin.exe,x86和x64文件夹下的都可以找到自己要测试的dll/lib/exe文件位置,复制好地址,如我们想知道test.lib的位数。在dumpbin.exe文件夹下,在地址栏输入cmd,摁回车,出现命令行窗口在命令行输入命令 格式为bumpbin.exe /headers 文件位置\test.lib摁enter键等待运行结束就好了结果显示;结果的最开头部分,(x64)或.原创 2020-06-23 12:23:18 · 2882 阅读 · 2 评论 -
[转载] 解决方案:VS2017 无法打开源文件 stdio.h main.h 等头文件
亲测得到解决;不过也有其他可能原因造成这个问题,问题描述:在VS2017中运行解决方案是有错误:“E1696 无法打开 源 文件 “stdio.h””…原因:这种问题一般发生在该项目代码是在网上下载而来的情况,或者电脑重装新的系统等情况,导致电脑系统与该项目生成时所采用的windows SDK 不同,从而在默认的位置(已发生变化)找不到许多源文件。解决方案:在C++项目处(示例为“Fibonacci”),鼠标右击,弹出的菜单中左击选择“属性”。单击 “属性” 后,弹出以下对话框,找转载 2020-06-22 14:17:06 · 2553 阅读 · 0 评论 -
cmake下载,安装
一、下载链接点击–普通下载即可二、安装点击安装-next勾选-i accept...—next选择add CMake to the sysem PATH for all users—next选择安装路径 -next点击install安装完成原创 2020-06-17 22:30:22 · 1700 阅读 · 0 评论 -
emun 枚举类型
enum 是一个可以将自己定义的字符串作为一个符号,用于以后判断,赋值等操作的枚举类型。内部的字符串不用加引号,如果不赋值的话,默认从第一个字符串等于0开始,后面的字符串代表的值逐个加1;也可以重新赋值,但是只能赋整型值参考链接enum Test{nnp, cft, zjr,uyr};//值从左到右依次为 0,1,2,3enum Test1{tt1=10,tt2,tt3};//值从左到右依次为 10,11,12enum Test2{ss1,ss2=4,ss3,ss4};//值从左到右依次为 .原创 2020-06-03 16:55:21 · 3596 阅读 · 3 评论 -
C++从入门到精通(三)
C++学习第3章将自己觉得尤其重要,或以前没了解获得新技巧进行加粗,重点复习3-1 成员函数,对象拷贝,私有成员1. 内容回顾类对象访问内部成员用c.variable;指针类访问内部成员用p->variable;2. class内部成员默认为private类型;struct内部默认为public类型。3. 对象的拷贝 Student s1; s1.age=10; s1.name="zhang_san"; //四种拷贝方式 Student s2=s1;原创 2020-05-30 18:15:56 · 255 阅读 · 0 评论 -
C++文件读入和写出总结笔记
一、写文件#include <fstream>ofstream ofs;//创建流对象ofs.open(path,打开方式);//指定路径和打开方式//打开方式:// ios::in 读文件打开// ios::out 写文件打开// ios::ate 从文件尾打开// ios::app 追加方式打开// ios::trunc 如已有文件,先删除文件// ios::binary 二进制方式// ios::nocreate 打开文件时,如果文件不存在,不创建文件// ios:转载 2020-05-18 14:40:20 · 257 阅读 · 0 评论 -
c++从入门到精通(二)
2.2 auto、头文件防卫、引用、常量定义并初始化变量新方法//定义变量****************int a{5};//int a={5}等号多余;for (int i{5};i<100;i++){}//定义数组****************int aa[]{1,2,3};//int aa[]={1,2,3}auto 自动类型推断自动推断发生在编译...原创 2020-05-01 20:37:27 · 568 阅读 · 0 评论 -
LNK1168 无法打开 C:\ruanjinaxiaoxi\C++\Debug\C++.exe 进行写入 C++ C:\ruanjinaxiaoxi\C++\C++\LINK 1 ————————
关于 LNK1168的解决方法:出现这个错误大体上是因为有程序占用了进程,解决办法很简单——关闭vs的运行结果,再次运行程序,或者关闭VS后重新打开。...转载 2020-05-01 16:38:12 · 388 阅读 · 0 评论 -
malloc free; new delete 报错 debug assertion failed
malloc/new是一样的原理如果你分配内存后,用分配的内存存储了一系列值,最后delete报错。我遇到的有两种可能:你的new定义的指针的地址在写代码过程中变化了,等于了另外一个变量的指针,则此时delete的是指针指向的那个变量的内存,则会报错。(如果你的指针等于了别的地址,那么原来申请的地址及其后的内存又有何用呢?用不上了啊,所以这样用不对)如果你用new定义的指针p,先给其赋值...原创 2020-05-01 16:37:00 · 290 阅读 · 0 评论 -
侯捷《C++面向对象编程》笔记第(一)周——超经典
1.推荐书籍《EFFECTIVE C++改善55个方法》《STL源码剖析》《THE C++ STANDARN LIBRARY 》《C++ Prinmer》2.头文件与类声明(1)类根据里面是否包含指针,分为object based(面向单一class设计) and object oriented(面对多重class的设计,classes和classes之间的关系)...原创 2019-06-16 10:39:48 · 472 阅读 · 0 评论 -
侯捷《C++面向对象编程》笔记(二)超经典-如何编出具有大家风范的类
积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步,驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇蟮之穴无可寄托者,用心躁也。是故无冥冥之志者,无昭昭之明;无昏昏之事者,无赫赫之功——荀子《劝学篇》一、三大函数:拷贝构造...原创 2019-06-16 23:03:28 · 324 阅读 · 0 评论 -
VS2019生成并使用动态链接库(自测有用)
VS2019首页点击动态链接库->下一步;在pch.h中 添加 extern “C” _declspec(dllexport) int function_name(int a, int b);在pch.cpp中直接定义函数即可:int function_name(int a, int b){ return a+b;}编译,软件会报:无法启动程序…,可忽略,底下显示成功1...原创 2020-02-11 21:16:44 · 2788 阅读 · 0 评论 -
堆和栈的区别--(转载)
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(...转载 2019-12-17 14:52:22 · 115 阅读 · 0 评论 -
c++高级功能学习笔记
面向对象的三大特征:封装+多态+继承一、C++之封装上1.c++类 封装(1) 原始类赋值:N.name="myy";N.age=10;正确赋值,将赋值封装进类定义的函数,这样就可以对赋值内容进行是否合法限制class Sudent{ public: void setAge(int_age) { if(int_age>0&&a...原创 2019-12-02 20:47:21 · 402 阅读 · 0 评论 -
C++静态错误:LNK1169 找到一个或多个多重定义的符号
我们都知道声明一个静态变量,同时一定要在类外对其进行赋初值,如果你没有赋初值,那么会导致错误,这是其一;其二,一般我们在类中使用静态,而类的书写格式是一个.h文件对应一个.cpp实现文件。如果你的赋初值声明写在了.h文件中,那么就会报这个错误。改正方法就是把声明移到.cpp文件中,问题得以解决(反正我的是这个原因)//class_A.hclass class_A{public: cla...原创 2019-11-20 09:42:42 · 749 阅读 · 0 评论 -
《C陷阱与C缺陷》笔记
第一章 词法“陷阱”=不同于==& 和 | 不同于 && 和 |词法分析中的贪心法整型常量字符与字符串第二章 语法“陷阱”第三章 语义“陷阱”第四章 连接第五章 库函数返回整数的getchar函数更新顺序文件缓冲输出与内存分配extern用法fseek用法、fwrite用法、fread用法程序输出有两种方式:一种是即时处理,但会造成较高系统负...原创 2019-08-02 15:30:34 · 282 阅读 · 0 评论