- 博客(20)
- 资源 (22)
- 收藏
- 关注
原创 c++从精通到入门
前言首先解释下为什么会有这个标题。c++这门语言,在20世纪80年代由Bjarne Stroustrup在贝尔实验室发明。到2020年c++20版本的发布,中间经历了五个c++标准,分别是c++98、c++03、c++11、c++14、c++17。然而大部分人对c++的了解,还停留在c++98或者c++03上。然而就对于这两个版本而言,想要说的上精通谈何容易?更不必说后面的三个标准。网上有这么一个段子:面试官:“9 号,xxx,在吗?”我:“在在在!!”面试官:“来,跟我走”。
2021-11-04 20:55:16
766
原创 现代c++学习笔记
1、结构化绑定(c++17)#include <iostream>#include <tuple>std::tuple<int, double, std::string> fun(){ return std::make_tuple(21, 2.1, "string");}int main(){ auto [x, y, z] = fun(); std::cout << " x = " << x <&
2021-11-01 11:00:08
495
原创 STL之洗牌算法——std :: random_shuffle和std :: shuffle
前言在STL中,有两个函数,可以将容器中的数据进行洗牌——随机排序,这两个函数就是std :: random_shuffle和std :: shuffle。头文件这两个函数在头文件<algorithm>中定义,所以使用这两个函数需要包含头文件:#include<algorithm>。函数原型template<class _RanIt, class _Urng> inline void shuffle(_RanIt _First, _...
2021-04-21 16:50:49
4698
原创 c++/cli(五)——函数
函数托管代码中的函数与非托管代码形式一致,但是参数有些不同:std::string参数对应托管代码中的参数为System::String^。例如:int fun(std::string str);→ int fun(System::String^ str);引用参数需要将值带出函数,托管代码中使用“%”表示。例如:int fun(int &n);→ int fun(int %n);指针参数需要传递类型指针,托管代码中使用“^”表示。例如:int fun(i..
2020-12-16 15:20:56
438
原创 c++/cli(四)——类&结构体
下面开始进入开发阶段。类对于类的处理,就是在c++的类外再封装一层,这里不用关心c++中类的实现是什么、不用关心c++类中的私有成员是什么,只需要把用到的方法重新封装一层即可。c++中的类#include <iostream>#include <string>class Person{ std::string m_name; unsigned m_age;public: Person() ~Person()public
2020-12-16 15:04:40
1148
原创 c++/cli(三)——开发环境的搭建
目录开发工具的选择开发环境的搭建新建工程配置项目属性开发工具的选择Visual Studio。本文使用的是Visual Studio 2013。开发环境的搭建新建工程打开vs2013-文件-新建-项目-Visual C++-空项目配置项目属性项目-右键-属性-配置属性-常规-项目默认值配置类型:动态库(.dll)公共语言运行时支持:公共语言运行时支持(/clr)ps:注意平台的选择,是win32还是x64,根据自己的要求选择。...
2020-12-16 14:20:19
465
原创 c++/cli(二)——基本类型对照
c++/CLI与c++类型对照 c++ c++/CLI bool System::Boolean char或signed char System::SByte double或long double System::Double float System::Single long long System::Int64 short System::Int16 std::string System::St
2020-12-16 14:04:19
442
原创 c++/cli(一)——简介
什么是c++/cli?C++/CLI(CLI:CommonLanguageInfrastructure)在计算机语言中是一门由微软设计,用来代替C++托管扩展(Managed C++,下文使用MC++指代)的语言。这门语言在兼容原有的C++标准的同时,重新简化了托管代码扩展的语法,提供了更好的代码可读性。C++/CLI是一门独立的语言(比如新的关键字),而不是像C++托管扩展一样是C++的超集。(C++托管扩展有一些不标准的关键字如__gc和__value)。所以,C++/CLI对于这些语法有...
2020-12-16 13:59:55
3171
1
原创 快速将二进制和十六进制互转|便捷方法|口算
怎么才能快速将二进制与10进制互转?方法如下:首先需要一张表:n(2^n) 128(2^7) 64(2^6) 32(2^5) 16(2^4) 8(2^3) 4(2^2) 2(2^1) 1(2^0) 一、十进制转二进制比如十进制数21,要转换成2进制的话,就从找比21小的2的次方数相加,直到等于21:21=16+4+1,然后就需要用到上面的表,把等式右...
2020-10-23 16:35:40
1076
1
原创 二叉树遍历
二叉树遍历分为——前序遍历、中序遍历和后序遍历。三种遍历方法是根据根节点的位置来命名的。按照写“<”这个符号的壁画顺序的遍历为前序遍历,即:根节点-左子树-右子树;然后按照顺时针转动90°,即中序遍历:左子树-根节点-右子树;然后再顺时针转动90°,即后序遍历:左子树-右子树-根节点。每种遍历方法个人总结有两种记忆方法。其中:前序遍历:1.从根节点开始,按照先左后右,第一次经过的节点打印出来即可。如图,从根节点开始,第一次经过根节点,打印,也就是A,继续从左子树遍历,第一次经过B,打印;..
2020-05-24 22:56:40
174
原创 c++11之lambda表达式
在2011年8月的一天,国际标准化组织(ISO)和国际电工委员会(IEC)旗下的C++标准委员会(ISO/IEC JTC1/SC22/WG21)发布了c++的最新标准:c++11。新的标准终于带来了令人兴奋的新特性——lambda。本文带来了lambda的基本使用方法。lambda即匿名函数,使用方法如下:capture:捕捉外部变量列表,可以是[],[...
2020-01-13 15:01:16
137
原创 boost.asio官方测试例子地址
https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/example/
2020-01-06 15:20:22
298
原创 解决“libboost_thread.so.xxx.xxx.xxx: cannot open shared object file: No such file or directory”问题
使用boost库的时候,编译没问题,但是运行的时候报“libboost_thread.so.xxx.xxx.xxx: cannot open shared object file: No such file or directory”错误,解决方法如下: 执行:sudo ldconfig /usr/local/boost_xxx_xxx_xxx/stage/lib...
2020-01-04 23:45:21
3331
原创 CMake之多目录结构
目录结构如下:其中bin为执行文件的输出目录,etc为配置文件目录,include为头文件的目录,lib为生成的库目录,src为cpp文件的目录。根目录的CMakeLists.txt内容为:include目录中的文件为:src目录中的文件为:src目录中的CMakeLists.txt为:然后在根目录中执行cmake .,生成MakeFile文件,然后执行ma...
2019-12-05 10:17:41
1476
原创 c和c++函数声明的区别
如果你声明一个函数:int fun();,函数参数为空的时候,在c中的意思是函数参数不确定,而在c++中的意思是函数参数为空。如果函数这样声明:int fun(void);,这时不论是在c中还是在c++中的意思都是函数参数为空。...
2019-09-06 11:26:44
628
原创 stl容器之vector
vector是stl中常用的容器类,这里为大家简单介绍下使用方法以及使用时注意的事项。vector(向量),是模板类,也就是说可以初始化为可储存各种类型的容器,可以是字符型、整数型,以及类类型。其中储存的元素在内存中是连续的,这点同数组一样,可以提供随机访问。定义的方法如下:vector<int> vec;这里定义了一个存储类型为int的vector。...
2019-08-19 18:15:55
194
原创 c++中的多态
多态,顾名思义,就是多种形态。总的来说就是一句话:使基类指针或引用可以访问子类对象。 介绍多态前,先说函数调用捆绑。 把函数体与函数调用相联系称为捆绑(binding)。当捆绑在程序运行之前(由编译器和连接器)完成时,这个叫早捆绑(early bingding)。在C语言中,捆绑的方式只有一种——早捆绑。而在运行时发生的捆绑,叫做动态捆绑(dyn...
2019-08-16 15:50:43
149
原创 c和c++中的const区别
在c中,const是外部链接,而在c++中是内部链接。 在c++中,当定义一个常量:const int i = 0;时,默认是不分配内存空间的,如果只是用来做常量转换,那编译器只是在代码中展开变量,但是如果当取常量地址时或者显示声明为外部链接:extern const int i = 0;,则编译器为其分配内存空间。 所以在c中,在一个文件定义了常量:con...
2019-08-08 18:09:58
169
原创 c++中malloc和new的区别
在c++中,依然支持从c继承过来的malloc和free,但是与new和delete的区别是:malloc是库函数,用malloc申请内存是对库函数的调用,不属于编译器管理的范畴,也就是说编译器无法控制其行为,使用malloc只是单纯的申请一块内存空间,不能调用自定义类型的构造函数。而new却是属于操作符,在编译器管理的范围之内。这样,当申请的内存类型为自定义类型时,如果用mall...
2019-07-25 16:53:21
134
原创 vim使用Vundle安装YouCompleteMe插件
使用的系统是ubuntu18.041.首先安装git:sudo apt install git。2.安装clang:sudo aptinstall clang。3.安装python:sudo apt install python3、sudo apt install python3-dev。4.cd到用户路径下,安装Vundle:cd ~;git clone https://gi...
2019-07-23 21:32:21
513
c++语言CSV文件分割解析
2021-10-27
佳能相机EDSDK再次封装
2021-10-27
mfc操作exce类
2015-06-10
大小端转换(C++)
2014-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人