- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 Effective C++之《实现》章节
此处注意,在C++98前,inline关键字多用于提示编译器在调用该函数的地方用函数本体替换之,。现代编译器几乎不再参考coder手动写的inline,而是通过编译器内部实现的统计方法自动inline,因此对比原文的条款,更应注重inline的其余用途.
2023-05-27 01:30:52
119
原创 Cpp——面向对象高级
重载潜在二义性: 如果我们为一个类定义了转化为目标类型的类类型转化(operator type() const) 又定义了对应类型的算术类型重载时,会有二义性class Base {public: int v; Base(int i) : v(i) {} operator int() const { return v; } Base &operator+(const Base &b) { v += b.v;
2022-05-10 15:53:19
280
原创 C++拷贝控制操作
拷贝控制操作 由 拷贝构造函数、移动构造函数、拷贝赋值运算符、移动赋值运算符、析构函数组成。其中:拷贝构造函数和移动构造函数 定义了当用同一个类型的另一个对象初始化本对象时做什么。拷贝赋值运算符和移动赋值运算符 定义了将一个同类型对象赋值给另一个本对象时的操作。析构函数定义了当此对象销毁时做什么当不写时,编译器会默认生成。拷贝、赋值与销毁拷贝构造函数如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。并且因为拷贝构造函数常被隐式使用,所以其
2022-05-07 20:55:19
613
原创 动态内存笔记
智能指针为了更安全地使用动态内存(避免内存泄漏),引入了智能指针。shared_ptr一般来说,p->call是调用智能指针指向对象的成员,p.call是调用智能指针的api。make_sharedmake_shared用参数来构造给定类型的对象,其()内的参数列表必须与某个构造函数相匹配。struct Node { int v; Node *left, *right; string s; void show() { cout <
2022-04-26 22:17:51
274
原创 Cpp笔记——class 类
定义类时,class和struct关键字唯一的区别在于默认访问权限。构造函数默认构造函数只有当类没有声明任何构造函数的情况下,才会自动生成默认构造函数,否则需要手动构造。但是如果构造函数的参数都设置了默认值,那么相当于定义了默认构造函数class Base {public: int i; int j; // A不会报错,因为相当于有无参默认构造函数了 Base(int v = 11) : i(v) {} // A报错,因为声明了构造函数后,不会自动生成默认构造函
2022-04-20 22:31:53
902
原创 Cpp函数指针辨析
在Cpp中,函数名不可以作为形参或者返回参数,但是函数指针可以#include <iostream>using namespace std;void show(string s, int i) { while (i--) cout << s << endl;}// 返回函数指针// decltype返回的是函数类型,而函数只能返回函数指针decltype(show) *getShow() { return show;}auto ge
2022-04-19 21:43:11
199
原创 Linux-定时器
文章目录socket选项SO_RCVTIMEO和SO_SNDTIMEOexample,connect超时SIGALRM基于升序链表的定时器定时是指一段时间后触发某段代码的机制,Linux提供了以下三种定时方法:socket选项SO_RCVTIMEO和SO_SNDTIMEOSIGALRM信号I/O复用系统调用的超时参数socket选项SO_RCVTIMEO和SO_SNDTIMEO分别用来设置socket接收数据超时时间和发送数据超时时间,所以用于与socket数据收发有关的系统调用,如send
2022-03-30 23:33:27
1263
原创 字符串、向量和数组
命名空间的using声明在头文件中一般不使用using,避免影响名称空间。string初始化string的方式string的操作string::size_typestring 比较大小字符串相加与Java不同,c++里面字符串字面值不是string对象,所以有以下规则处理string的字符遍历// 可以改变s的字符for (auto& c : s) { c = 'w';}// 改变不了s的字符for (auto c : s) { c = 'w';}
2022-01-16 23:00:02
258
原创 HTML学习笔记20/1/12
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>MyFirstHTMLPage</title></head><body><imgsrc="../images/lo...
2020-01-12 21:53:48
130
原创 (待更新)让程序延迟一段时间的方法
1.使用ctimectime里的CLOCKS_PER_SEC 等于该环境下每秒钟含有的系统时间单位数结合以下代码可以得到预定时间:float WaitTime;cin>>WaitTime;clock_t DelayTime=WiatTime*CLOCKS_PER_SEC;而clock()将返回此时时间,则可以用以下代码获取当前时间clock_t NowTime=c
2018-02-06 23:35:29
390
原创 递增/递减运算符与指针笔记 In C++——By C++ primer
首先我们看符号的优先级:后缀递增=后缀递减(结合顺序:从左到右)大于前缀递增=前缀递减=解除占用符*(结合顺序:从右到左)那么对于以下代码:#includeusing namespace std; int main(){ int num[5]={1,3,5,7,9}; int *p=&num[2]; int *q=&num[2]; cout<<"
2018-02-06 23:03:59
283
原创 数据结构与算法分析-Mathematics Review-读书笔记
Mathematics Review1. Exponents2. Logarithms3. Series (1) geometric series ( 2) arithmetic series ( 3 ) harmonic numbers i. Euler's constant4. Modular Arithmetic
2018-02-04 16:14:39
243
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人