
C/C++学习笔记
C/C++学习笔记
xxxywu
这个作者很懒,什么都没留下…
展开
-
Partial Specialization of function template
1. function specialization vs overload考虑一下,template specialization 归结为为给定类型选择正确的实现。并且解析发生在编译时。现在将其与函数重载进行比较:它包括为给定类型的参数选择正确的函数。并且解析也发生在编译时。从这个角度来看,这两个功能看起来非常相似。因此,通过函数重载可以达到与函数模板(部分或全部)专业化等效的功能,这是正常的。让我们用一个例子来说明。考虑以下模板函数f:template <typename T>v翻译 2020-10-21 14:39:30 · 705 阅读 · 0 评论 -
C++ 并发学习_2_future
本文将介绍 C++11 标准中 <future> 头文件里面的类和相关函数。<future> 头文件中包含了以下几个类和函数:Providers 类:std::promise, std::package_taskFutures 类:std::future, shared_future.Providers 函数:std::async()其他类型:std::future_error, std::future_errc, std::future_status, std::lau原创 2020-10-12 13:39:12 · 1087 阅读 · 1 评论 -
C++ 并发学习_1_thread和mutex
文章目录1 与 C++11 多线程相关的头文件2. `std::thread`2.1 `std::thread` 构造2.2 move 赋值操作2.3 其他成员函数1 与 C++11 多线程相关的头文件C++11 新标准中引入了五个头文件来支持多线程编程,他们分别是<atomic> ,<thread>,<mutex>,<condition_variable>和<future>。<atomic>:该头文主要声明了两个类, std:转载 2020-09-04 10:26:30 · 571 阅读 · 0 评论 -
关于<functional>
<functional>是函数对象库的一部分,并提供标准的哈希函数。详见cppreferencestd::reference_wrapper (c++11)template< class T >class reference_wrapper;std :: reference_wrapper是一个类模板,它将引用包装在可复制的可分配对象中。它通常用作一种将引用存储在标准容器(例如std :: vector)中的机制,这些容器通常无法保存引用。具体来说,std :: ref原创 2020-08-28 10:48:32 · 639 阅读 · 0 评论 -
C++ I/O库学习
IO库C++不直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO。这些类型支持从设备读取数据、向设备写入数据的IO操作,设备可以是文件、控制台窗口等。还有一些类型允许内存IO,从string读取数据,向string写入数据。IO库定义了读写内置类型值得操作。此外,一些类,如string,通常也会定义类似的IO操作,来读写自己的对象。初学C++时,为了控制台的交互,往往会接触到IO的内容,现在可以对以下的设施进行说明了:istream类型,提供输入操作ostream类型,提供输出操作c转载 2020-08-27 15:59:30 · 314 阅读 · 0 评论 -
C及C++的回调函数概念及应用
1.概念在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过参数将函数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。...原创 2020-08-26 17:03:41 · 1182 阅读 · 0 评论 -
C/C++基础数据类型所占的字节数
C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节。所以int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):sizeof(short int)<=sizeof(int)sizeof(int)<=sizeof(long int)short int 至少应为16位(2字节)lo原创 2020-08-18 10:32:50 · 546 阅读 · 0 评论 -
C++_异常处理的基础用法与拓展
异常处理基础用法throw表达式throw runtime_error("xxxxx");其中,runtime_error是标准库异常类型的一种,定义在stdexcept.h。try blocktry{ program-statements}catch(exception-declaration){ hadler-statements}catch(exception-declaration){ hadler-statements}...示例try {...}c原创 2020-07-06 22:15:10 · 246 阅读 · 0 评论 -
类知识补充
目录1. 定义抽象数据类型2. 访问控制与封装2.1 struct与class的区别2.2 友元 ==friend==3. 类的其他特性3.1 定义一个类型成员3.2 可变数据成员3.3 委托构造函数1. 定义抽象数据类型定义在类内部的函数是隐式的inline函数。成员函数通过名为this的额外的隐式参数来访问调用它的那个对象。this形参是隐式定义的,实际上,任何自定义名为this的参...原创 2020-06-17 13:57:20 · 159 阅读 · 0 评论 -
C++_强制类型转换
cast-name<type>(expression);cast-name : static_cast 、dynamic_cast 、 const_cast 、 reinterpret_cast。dynamic_cast 支持运行时的类型识别。static_cast任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。当需要把一个较大的算术...原创 2020-03-23 11:00:30 · 313 阅读 · 0 评论 -
C海拾贝
智能指针template与class的区别template的使用explicit堆栈对象stack heap原创 2020-03-18 15:06:16 · 216 阅读 · 0 评论