c++基础
文章平均质量分 61
c++相关的基础知识
数据库内核
这个作者很懒,什么都没留下…
展开
-
make 和 makefile 的使用 ###通俗易懂
人们通常利用 make 工具来自动完成编译工作。这些工作包括:如果仅修改了某几个源文件,则只重新编译这几个源文件;如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。利用这种自动编译可大大简化开发工作,避免不必要的重新编译。make 工具通过一个称为 makefile 的文件来完成并自动维护编译工作。makefile 需要按照某种语法进行编写,其中说明了如何编译各个源文件并连接生成可执行文件,并定义了源文件之间的依赖关系。当修改了其中某个源文件时,如果其他源文件依赖于该文件,则也要重新编译所有依赖该原创 2023-10-23 22:26:41 · 516 阅读 · 0 评论 -
vscode中使用C++实现mysql数据库编程(附带相关案例)
使用vscode连接Linux中的mysql,并进行mysql开发,对于初学者来讲多少有些摸不着头脑,下面给出mysql的建库、建表,以及增、删、改、查等基本操作。原创 2023-03-14 11:44:14 · 2640 阅读 · 4 评论 -
windows下vscode连接Linux中的MySQL(非常实用)
于初学Linux系统的小伙伴来说,由于对Linux系统及其在windows下的环境配置比较生疏,所以当使用windows下vscode连接Linux中的MySQL,并进行相关研发时,颇为头疼;下面对其环境配置做出具体介绍!!!原创 2023-03-11 23:17:52 · 1751 阅读 · 1 评论 -
vscode环境配置文件生成
配置 C++ 环境时,会生成.vscode 文件夹,该文件夹下通常包含三个配置文件:tasks.json、launch.json、c_cpp_properties.json;tasks.json为编译器相关的配置文件,用于生成可执行文件。当工程涉及到多个源文件时,使用Makefilec_cpp_properties.json为编译器路径(包含目录、库目录)和智能代码提示相关的配置文件。launch.json为调试器相关的配置文件。比如,调试器的路径、编译生成的可执行文件路径。原创 2023-03-11 20:38:36 · 5198 阅读 · 1 评论 -
【C++】内存对齐原理及详解(附带相关案例)
那么什么是字节对齐?在C语言中,结构体是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、flfloat等)的变量,也可以是一些复合数据类型(如数组、结构体、联合体等) 的数据单元。在结构体中,编译器为结构体的每个成员按其自然边界(alignment)分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构体的地址相同。为了使CPU能够对变量进行快速的访问,变量的起始地址应该具有某些特性,即所谓的“对齐”,比如4字节的int。原创 2022-10-24 09:17:07 · 1337 阅读 · 0 评论 -
【C++】智能指针用法详解(非常实用)
C 语言规定所有变量在使用前必须先定义,指定其类型,并按此分配内存单元。指针变量不同于 整型变量和其他类型的变量,它是专门用来存放地址的,所以必须将它定义为“指针类型”。2、智能指针如果在程序中使用 new从堆(自由存储区)分配内存,等到不需要时,应使用delete将其释放。C++ 引用了智能指针 auto_ptr,以帮助自动完成这个过程。随后的编程体验(尤其是使用STL)表明,需要有更精致的机制。基于程序员的编程体验和 BOOST库提供的解决方案,C++11。原创 2022-10-22 16:46:00 · 4360 阅读 · 0 评论 -
【C++】const 用法总结(非常实用)
/const定义的常量必须进行初始化说明:const 定义的常量常生效于编译的阶段,在C语言中是存储在内存中、需要额外的内存空间的,且其定义的常量都是带有数据类型的。原创 2022-10-19 18:37:21 · 1621 阅读 · 0 评论 -
【C++】string 相关成员函数详解(非常实用)
最近处于找工作-ing,大大小小公司的笔试、面试也进行了不少;在这个过程中,我发现很多公司都比较喜欢出有关 string 方面的试题(包含:笔试、面试)。下面针对,笔试常考、面试常问 string 相关成员函数做出介绍。翻译 2022-08-23 22:23:22 · 439 阅读 · 0 评论 -
STL 底层实现原理
deque底层实现翻译 2022-08-07 14:49:24 · 339 阅读 · 0 评论 -
Vs + Qt 界面设计常用函数合集
下面主要介绍一些在进行Qt界面设计时SetWindows..开头的一些常见函数!!!原创 2022-07-19 17:40:21 · 574 阅读 · 0 评论 -
QT+VS 工程在 Release/Debug 文件夹下导入相关 DLL (非常实用)
3、在 cmd 命令框下进入 E:\qt5.12\5.12.5\msvc2017_64\bin 文件夹说明:F:\vegetableBird\changeDetection\myImageRegistration\x64\Release 路径为对应 QT+VS 工程的 release 文件夹;原创 2022-07-13 11:34:08 · 1297 阅读 · 0 评论 -
matlab2020a编译环境 MCR 安装步骤(非常实用)
最近在研究c++调用matlab函数时遇到了一个非常头疼的问题!!!(1)在c++调用matlab后,对c++代码进行封装(.exe),封装后在未安装matlab的电脑上运行,尽管在c++工程中已经包含了各种DLL,但是仍然无法正常运行!!!(2)最后才发现尽管执行机上安装matlab是非必要的,但是配置matlab运行环境却是必要的;在不安装matlab的情况下,安装MCRinstaller也可以配置matlab运行环境!!!参考链接:C++调用matlab函数(未安装 matlab 也可以使用)_一米九原创 2022-06-08 15:06:46 · 12789 阅读 · 2 评论 -
C++调用matlab函数(未安装 matlab 也可以使用)
一、封装 matlab 函数首先把 matlab 代码封装成函数的形式,下面举一个简单的函数为例;function c = myadd(a, b)c = a + b;end二、编译 matlab 函数具体的编译步骤如下:1、输入 mex -setup 回车,然后点击选择 mex -setup C++;2、输入 mbuild –setup 回车,然后点击选择 mex -setup C++ -client MBUILD;3、输入 mcc -W cpplib:addtest原创 2022-05-21 19:35:01 · 6593 阅读 · 4 评论 -
mwArray和Mat之间的转化
在使用 C++ 调用 matlab 函数时,通常会用到 mwArray 和 cv::Mat 之间的转化,尤其是在做图像处理时,一维之间的转化很简单,这里不做过多介绍,下面主要介绍一下二维之间的转化;在进行 mwArray 和 cv::Mat 之间的转化时需要注意以下两点:1、Mat2mwArray函数的输入Mat类型是 CV_8UC1,灰度图;如果要传递多通道图像的话,需要先cv::split()成多个灰度图像分别传给matlab。2、mwArray2Mat的返回Mat的类型是CV_64FC.转载 2022-05-13 23:36:18 · 1218 阅读 · 2 评论 -
win7 离线安装 vs2019 出现闪退解决办法(非常实用)
如果是 win7 系统,则在安装离线包前,下面步骤一和步骤二缺一不可,否则在安装的过程中会出现闪退的情况,如下图所示(安装后直接就退出了),也即安装失败!!!win7 离线安装 vs2019 详细步骤见:CSDN1、步骤一如果是 win7 系统,在安装下载的依赖项前需要安装 win7 所需要的两个补丁KB4490628和KB4474419 ,下载地址分别为(下载后直接安装即可):KB4490628:Microsoft Update CatalogKB4474419:Micros.转载 2022-05-11 11:41:17 · 2644 阅读 · 0 评论 -
Win10/Win7 离线安装 vs2019 详细步骤
一、下载 VisualStudioSetup.exe下载链接:https://visualstudio.microsoft.com/zh-hans/vs/点击右上角:免费 Visual Studio二、打开 cmd 使用命令下载需要的依赖项正常 C++ 开发只需要下载:.NET桌面开发、使用 C++ 的桌面开发、使用 C++ 的移动开发、通用 windows 平台开发;即可!1、打开 cmd 进入到VisualStudioSetup.exe 所在目录2、使用 cmd 下载依赖..原创 2022-05-10 20:44:12 · 12488 阅读 · 1 评论 -
C++工程封装成安装软件.exe(非常实用)
在把 c++ 程序打包生成安装软件时通常使用 Microsoft Visual Studio Installer Project 扩展比较简单;1、扩展的安装(1)直接在 vs 扩展里面安装,速度过慢不建议使用;(2)下载好的扩展:MVSIP2017(在VS中用于程序打包的扩展)-C++文档类资源-CSDN下载;这里是 2107 版支持 vs2017 和 vs2019 ;下载后直接双击进行安装即可;2、c++ 程序生成安装软件(1)右击解决方案 —— 添加 —— 新建......原创 2022-04-08 16:52:14 · 15161 阅读 · 3 评论 -
c++ 读取 .tfw 文件数据(读取 .tif 影像中的投影信息)
1、按读取 .txt 方法读取#include <iostream>#include <iomanip>#include <fstream>#include <sstream>#include <vector>#include <stdio.h>#include <cmath>#include <opencv2\opencv.hpp>#include <opencv2\imgproc原创 2022-03-31 18:29:28 · 4811 阅读 · 0 评论 -
解决 c++ 字符转转浮点型数据且保留所有小数
最近在处理字符串转数字时,控制台输出的转换结果总是出现自动四舍五入的情况;期间尝试了各种转换函数但转换结果仍然是经过四舍五入的;实际上并不是使用的函数问题,而是控制台显示的问题,实际转换结果是正确的,如果仅是使用转换结果,直接用即可!!!1、输入数据2、输出结果3、代码实现由于我读取的是 .tfw 中的数据,所以在代码实现上先对数据进行读取,然后做字符串转浮点型数据;#include <iostream>#include <i...原创 2022-03-31 18:24:27 · 1841 阅读 · 0 评论 -
【C++】string 和 QString 之间的转化及乱码问题(非常实用)
QString 和 string 的转化多半都是用于 Qt 中,转化方式如下:QString str_1;string str_2;str_2 = str_1.toStdString(); //QString转化为stringstr_1 = QString::fromStdString(str_2); //string转化为QString 上述代码虽然转化成功了,但是如果字符串中含有中文且需要在 Qt 界面上显示时,往往会...翻译 2021-12-10 17:36:45 · 6765 阅读 · 2 评论 -
【C++】读取 .csv / .xlsx 文件中的指定数据(非常实用)
在做数据处理或者图像处理时,偶尔需要从文件中读取数据,本文主要是从 .csv 中读取数据,读取的数据可以是某一行、某一列或具体某一个数值/坐标;1、数据介绍本文所使用的数据如下表所示,列从零开始计数,第 0、4、5 列为具体数值,第 1、2、3 列为坐标数据;本文的目标是把表格中的数据逐个读取出来,以备项目可视化使用;2、代码实现#include <iostream>#include <fstream>#include &...原创 2021-12-10 17:13:52 · 14431 阅读 · 27 评论 -
【C++】读取 .txt 文件中的一列或多列数据(非常实用)
在做数据处理时,我们往往只需要文件中的某一行或某一列数据,获取文件中的某一行数据比较简单,本文中只是对获取某一列或多列数据进行了实现! 注:获取表格中的某一列或多列数据和 .txt 原理一样,只需要修改为相应的文件即可;1、具体实现如下,实现的具体过程在代码中已经详细注释;#include <iostream>#include <vector>#include <iomanip>#include <fstr...原创 2021-12-08 19:34:53 · 12912 阅读 · 23 评论 -
【C++】读取文件夹下所有 .txt 中的某一行数据,并保存到新的 .txt 文件中
废话不多说直接开整:#include <string>#include <iostream>#include <fstream>#include <sstream>#include <vector>#include <io.h>using namespace std;//用于获取指定文件夹下所有文件的绝对路径void getFiles(string path, vector<string>&.翻译 2021-10-12 22:47:09 · 985 阅读 · 1 评论 -
Matlab 代码 转成 C/C++ 代码
matlab代码转c/c++详细教程1.将matlab代码的输入输出删除如 a = input("a");,类似于这种matlab语句先删除,为什么要这样?请看第二步这里还有一点注意事项,请看第5步.2.将代码封装为一个函数模板如下:function [返回参数列表] = func1(输入参数)你的程序放在这里,不要有输入输出语句end将输入语句全部换成函数的输入参数,例如,上面的a = input("a")删除以后,将a放入输入参数,有多少个放多少个,用“..转载 2021-10-12 10:15:05 · 6287 阅读 · 0 评论 -
【C++】形参使用介绍
1、形参中的中括号;eg:下面举个简单例子进行介绍fun(string[, offset[, length]][, encoding]);说明:上面的 fun 函数中有四个形参,其中参数 string 是要求必须传入的,而针对带有中括号的形参offset、length、encoding 按需求选择性传入,即可传也可以不传;针对[, offset[, length]] 情况,形参[, length] 在形参[, offset] 所在的中括号中时,如果想传入length 参数,则必须传入...翻译 2021-11-11 10:01:22 · 1596 阅读 · 0 评论 -
【C++】删除矩阵中的指定列(非常实用)
(1)删除矩阵中的指定列——删除某一列/*******************删除矩阵中指定的列************************/void delete_col(Mat& arr, int num){ if (num < 0 || num >= arr.cols) { cout << " 所删除的列索引不合法! " << endl; } else { //删除列是矩阵的最后一列 if (num == arr.co.原创 2021-08-31 17:33:38 · 2803 阅读 · 0 评论 -
【C++】 const 用法总结
C++const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。1.const 修饰成员变量 int main() { int a1=3; //non-const data const int a2=a1; //const data ...转载 2021-09-13 15:21:47 · 182 阅读 · 0 评论 -
【C++】STL 总结
一、set与unordered_set1、set容器实现机理 基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的;(1)set/multiset 容器常见方法:set<T> st; //默认构造函数set(const set &st); //拷贝构造函数赋值set& operator=(const set &st); //重载等号操......原创 2021-09-17 21:50:54 · 442 阅读 · 0 评论 -
【C++】递归调用——难点揭秘
在函数递归调用这一块,很多小伙伴都容易犯迷糊,其实只要关键的一句理解了,那就 noproblem ,today 拿力扣上的一个数据结构题说一下!class Solution { public: vector<int> reversePrint(ListNode* head) { recur(head); return res; } private: vector<int> ...原创 2021-08-24 08:30:57 · 610 阅读 · 0 评论 -
【C++】字符串遍历的三种方式
(1)常规遍历——利用字符串的长度进行遍历#include <iostream>#include <string>using namespace std;void Traverse(string str){ for (size_t i = 0; i < str.size(); i++) { cout << str[i] ; } cout << endl;}int main(){...原创 2021-08-23 08:56:19 · 6315 阅读 · 0 评论