
C++基础部分
文章平均质量分 90
selfsongs
现实生活的艰苦,像一捆粗糙的绳子,紧紧的捆住她像捆住天使。天使却从绳索中飞出来,轻轻落在绳索上,唱她应该唱、想唱的歌
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[C++] C++基础知识总结一
C++基础知识总结一代码命名规范源码、反码、补码Unicode、UTF16、UTF8、UTF32C/C++中字面量数的类型是intC语言中无符号数和有符号数之间的运算负数的左移和右移计算机中浮点数的表示、存储方式运算符的优先级C++基本数据类型静态库与动态库静态链接和动态链接区别动态绑定与静态绑定软链接/硬链接C++函数参数入栈顺序C++地址空间从上到下讲讲C++关键字static关键字volatile关键字const关键字mutable关键字externexplicit宏展开和内联函数区别当函数调用的时候原创 2020-11-24 10:30:53 · 1130 阅读 · 0 评论 -
[C++] C/C++字符串处理相关总结
字符串处理相关清空字符串区域复制字符串区域搜索字符串相关字符串转整型字符串转浮点型整型转字符串清空字符串区域memset()char* m_buf = new char[10]; memset(m_buf, '\0', 10);bzero()复制字符串区域strcpy()搜索字符串相关strrchr字符串转整型atoi字符串转浮点型atofatod整型转字符串snprintf...原创 2020-08-20 14:34:15 · 820 阅读 · 0 评论 -
[C++] unique_ptr和share_ptr的简单实现
unique_ptr和share_ptr的实现原理转载 2020-08-04 17:53:52 · 402 阅读 · 0 评论 -
[C++] 自己编写strlen、strcpy、strcmp、strcat、memset、memcpy
不使用库函数、自己编写的(strlen、strcpy、strcmp、strcat、memcmp、memcpy、memmove)转载 2020-08-02 20:37:33 · 279 阅读 · 0 评论 -
[C++] C++从文件中读入多行数据
C++从文件中读入多行数据std::ifstream练习题C++中文件的读取操作,如何读取多行数据,如何一个一个的读取数据std::ifstream来自std::ifstream常用的成员函数如下Public member functions函数功能(constructor)Construct object and optionally open file (public member function )openOpen file (public member f原创 2020-08-02 16:07:47 · 10511 阅读 · 0 评论 -
[C++] C++从键盘输入多行数据
C++从键盘输入多行数据1. scanf函数2.cin1. scanf函数https://blog.csdn.net/liuuze5/article/details/51098471函数原型int scanf(const char *format,...);调用形式:scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致。返回值:scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。如:scanf("%d原创 2020-07-31 02:09:58 · 29163 阅读 · 1 评论 -
[C++] scanf函数使用
scanf函数使用scanf函数解决问题问题一问题二来自https://blog.csdn.net/liuuze5/article/details/51098471scanf函数函数原型int scanf(const char *format,...);调用形式:scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致。返回值:scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。如:scanf("%d %d转载 2020-07-31 02:07:51 · 1336 阅读 · 0 评论 -
[C++] C++11 std::chrono库
C++11 std::chrono库Durations持续时间类Time points 时间点Clocks时钟来自C++11 std::chrono库详解chrono是一个time library, 源于boost,现在已经是C++标准。头文件#include<chrono>名称空间std::chrono命名空间里chrono是一个模版库,使用简单,功能强大,只需要理解三个概念:duration、time_point、clockDurations持续时间类std::chr转载 2020-07-27 22:08:32 · 319 阅读 · 0 评论 -
[C++] 字符串转数字,数字转字符串
字符串转整数,整数转字符串atoiatofatodsprintf函数atoiatofatodsprintf函数头文件:#include <stdio.h>sprintf()函数用于将格式化的数据写入字符串,其原型为:int sprintf(char *str, const char *format, ...) 【参数】str – 这是指向一个字符数组的指针,该数组存储了 C 字符串。format – 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 f原创 2020-07-27 00:17:16 · 11523 阅读 · 0 评论 -
[C++] 虚函数实现原理
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家一个清晰的剖析。当.转载 2020-07-25 00:42:33 · 314 阅读 · 0 评论 -
[C++] 动手实现一个string类
实现一个string类原创 2020-07-16 23:04:34 · 264 阅读 · 0 评论 -
[C++] 并查集Disjoint_set
并查集Disjoint_set转载 2020-07-13 23:26:19 · 441 阅读 · 0 评论 -
乐观锁 悲观锁 自旋锁
乐观锁 悲观锁 自旋锁https://blog.csdn.net/wolfGuiDao/article/details/105253815转载 2020-07-13 16:18:27 · 520 阅读 · 0 评论 -
值得推荐的C/C++框架和库
值得推荐的C/C++框架和库总结太棒了值得推荐的C/C++框架和库转载 2020-07-07 11:26:12 · 2038 阅读 · 2 评论 -
Linux内存管理(下)
Linux内存管理(下)物理内存管理物理页管理面临问题外部碎片内部碎片页面管理算法Buddy(伙伴)分配算法分配实例slab分配器大白话说原理数据结构slab高速缓存的分类通用高速缓存专用高速缓存虚拟内存分配用户空间内存分配malloc内核空间内存分配kmallocvmallocReference前面转载了一篇文章,介绍了linux的内存管理基础Linux内存管理(上)接下来继续文章来自https://mp.weixin.qq.com/s/EvU7pV51ctPooREQt_8SaQ物理内存管理转载 2020-06-30 20:27:37 · 635 阅读 · 0 评论 -
Linux内存管理(上)
Linux内存管理虚拟地址虚拟地址的好处物理地址用户空间进程与内存内核空间回顾一下内存数据结构用户空间内存数据结构内核空间动态分配内存数据结构Reference来自https://mp.weixin.qq.com/s/Aj-A5ltGJoD5fkFiMlhjoA虚拟地址前提约定:本文讨论技术内容前提,操作系统环境都是 x86架构的 32 位 Linux系统。即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知道了。为了充分利用和管理系统内存资源,Lin转载 2020-06-30 19:50:42 · 592 阅读 · 0 评论 -
gcc、libc、libstdc++都是啥?
gcc、libc、libstdc++都是啥?从libc说起。那eglibc又是什么?还有一个glib又是什么呢?libc++/libstdc++,这两个库有关系吗?说完了这些库,这些库最终都是拿来干嘛的?那g++是做什么的?当你在linux下写C/C++代码的时候,是不是会遇到许多编译链接的问题? 时不时报个glibc,gcc,g++等相关的错误? 很多时候都无从下手,而且比较混乱。 这也是编译链接过程中经常出现的问题。这篇文章不是去介绍如何编译链接,而是理清编译链接过程中碰到的一些概念和出现的问题。尤转载 2020-06-12 11:40:42 · 7647 阅读 · 0 评论 -
[C++] 内存池总结
内存池总结new和malloc的区别,malloc底层原理经典的内存池实现标准库的std::allocator头文件类模板声明实现使用示例SGI STL中的内存池实现alloc参考:https://blog.csdn.net/K346K346/article/details/49538975new和malloc的区别,malloc底层原理经典的内存池实现标准库的std::allocatorhttps://en.cppreference.com/w/cpp/memory/allocator头文件转载 2020-06-04 20:50:10 · 551 阅读 · 0 评论 -
[C++] 线程池总结
线程池转载 2020-06-04 20:42:02 · 488 阅读 · 0 评论 -
[C++] 可变形参函数
可变形参函数可变形参函数initializer_list实现可变参函数可变参数模板可变形参函数https://blog.csdn.net/qq_35280514/article/details/51637920在c++编程中,有时我们需要编写一些在源代码编写阶段无法确定参数个数,有时甚至无法确定参数类型的函数。因此我们需要一类函数:它们可以在运行时取任意的实参个数并根据实参的个数自动处理不同实参的情形,或者至少可以在运行时指定任意的实参个数。在C++中实现一个变参函数的方法有三种:第一种方法,转载 2020-06-04 14:22:38 · 378 阅读 · 0 评论 -
float,double类型的存储方式和精度丢失
float,double类型的存储方式即精度丢失计算机中浮点数的表示、存储方式计算机中浮点数的表示、存储方式原创 2020-06-01 23:07:55 · 1517 阅读 · 0 评论 -
[C++] 智能指针
参考:头文件auto_ptr使用示例unique_ptr类模板声明示例shared_ptr模板声明通过辅助类模拟实现 shared_ptrshared_ptr使用示例weaked_ptrweak_ptr 用法weak_ptr 的作用如何选择智能指针C++ 标准模板库 STL(Standard Template Library) 一共给我们提供了四种智能指针:- auto_ptr(C++11已舍弃)- unique_ptr、- shared_ptr- weak_ptr,其中 auto_ptr 是.转载 2020-05-29 00:12:28 · 527 阅读 · 0 评论 -
[C++] 类中成员变量的初始化总结二
C++类中成员变量的初始化总结一三种成员变量初始化位置对于类的成员对象的初始化成员数组的初始化基本类型的成员数组对象成员数组补充一下动态数组的初始化vector作为成员变量的初始化C++类中成员变量的初始化总结一以前写过一篇C++类中成员变量的初始化总结一,现在发现还得在补充一些三种成员变量初始化位置对于C++11来说,类的成员变量有三个位置进行初始化:声明时初始化初始化列表初始化( 成员变量初始化的顺序是按照在那种定义的顺序)以下三种情况下必须使用初始化成员列表一、需要初.原创 2020-05-24 14:47:35 · 3749 阅读 · 5 评论 -
[C++] 怎样初始化二维vector
二维vector的初始化方法总结初始化一个 二维vector,行M,列N学会用大括号初始化二维数组初始化一个 二维vector,行M,列不固定初始化一个二维vector,行列都不固定leetcode相关例题以定义一个二维整形数组并初始化为例:初始化一个 二维vector,行M,列N// 初始化一个 二维的matrix, 行M,列N,且值为0vector<vector<int&g...原创 2020-05-03 17:19:51 · 47408 阅读 · 6 评论 -
标准c++库、stl库,boost库,qt库
C++标准库C/C++标准库主要包含3部分: STL、IO流及本地化、C的函数库。标准库不是STL,STL是标准模板库,是标准库的一个子集。它是一个可复用的组件库,其中包含了很多实用的算法和数据结构。C++标准库是std名字空间中的所有内容,就是那些不带.h扩展名的头文件。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 标准的头文件中,与宏相关的名称在全局作用域中...原创 2020-04-26 23:12:17 · 4204 阅读 · 0 评论 -
sort源码及__final_insertion_sort
最近在看STL源码解析的时候,在看到SGI STL sort的部分是,对std::sort的最后一步__final_insertion_sort(插入排序),比较迷惑。template <class RandomAccessIterator>void __final_insertion_sort(RandomAccessIterator first, ...原创 2019-11-26 17:36:39 · 358 阅读 · 0 评论 -
[C++] 程序中各种变量的存储位置和程序返回变量的问题
转自http://blog.sina.com.cn/s/blog_3f9bcb8b0100wztf.htmlc++内存到底分几个区?一:1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分配方式倒是类...转载 2019-11-12 20:55:21 · 770 阅读 · 0 评论 -
堆和栈
问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语...转载 2019-11-08 16:42:55 · 176 阅读 · 0 评论 -
[C++] 关于new操作符的重载
关于c++ new操作符的重载你知道c++ 的new操作符和operator new的区别么?也许你还会问,他们有区别吗?当你写下面这样的代码时,string *pa = new string("memory managerment");你使用的是new操作符,这个操作符和sizeof一样,是c++语言级别支持的。你不能改变它的语义,它做的事情总是不变的:分配足够的内存以容纳对象,然后调...转载 2019-11-08 11:02:26 · 5368 阅读 · 0 评论 -
[C++] 通过基类指针调用派生类中定义的方法&&继承中的名称遮掩
通过基类指针调用派生类中的方法动态绑定静态绑定作用域掩盖dynamic_cast<>动态转型的作用区分接口继承和实现继承动态绑定动态类型指“目前所指对象的类型”;动态绑定是指在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。#include <iostream>using namespace std;class BaseA{p...原创 2019-11-05 17:50:17 · 4417 阅读 · 0 评论 -
字符,字节和编码
http://www.regexlab.com/zh/encoding.htm转载 2019-10-20 16:08:22 · 97 阅读 · 0 评论 -
[C++] friend template function
一个带有友元函数的类模板如下:template <typename T> class Foo { friend std::ostream& operator<< (std::ostream& os, const Foo<T>& a);};operator<<()被声明为非模板友元函数,对于每一个Foo类使用的类型T...原创 2019-09-30 16:05:44 · 383 阅读 · 0 评论 -
[C++] 类的静态成员变量和静态成员函数
C++中类的静态成员变量以一个简单的例子来引入C++中类的静态成员变量!假入客户给你提了一个需求:统计在程序运行期间某个类的对象的数目保证程序的安全性(不能使用全局变量)随时可以获取当前对象的数目你或许会想到用类的成员变量来做计数值。写出的代码可能类似下面的代码:#include <stdio.h>class Test{private: int mCo...转载 2019-09-01 21:59:38 · 580 阅读 · 1 评论 -
[C++] 类中成员变量的初始化总结一
1、普通的变量一般不考虑啥效率的情况下 可以在构造函数中进行赋值。考虑一下效率的可以再构造函数的初始化列表中进行。class CA{public: int data; ……public: CA(); ……};CA::CA():data(0)//……#1……初始化列表方式{ //data = 0;//……#1……赋值方式};2、static 静态变量static...转载 2019-09-01 22:02:40 · 5567 阅读 · 0 评论