![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++知识点
C++知识点
Lionel_Coder
这个作者很懒,什么都没留下…
展开
-
【c++ 知识点】delete的异常情况
delete使用时的边界情况原创 2023-02-24 12:00:04 · 954 阅读 · 0 评论 -
【C 知识点】文件操作
文件操作原创 2023-01-10 20:42:24 · 130 阅读 · 0 评论 -
【多线程】【C++ 知识点】pthread_join学习
pthread_join 介绍原创 2023-01-10 20:39:27 · 2384 阅读 · 0 评论 -
【C++ 语法】【基本类型】unsigned char 和 char取值范围
unsigned chat 和 char 的区别原创 2023-01-09 15:06:56 · 2642 阅读 · 3 评论 -
【C++】单例模式
单例模式问题一 为什么单例模式中的单例对象是用static修饰?为什么单例模式中的单例选择用静态成员的方式去实现? 问题二 这个静态成员变量什么时候被初始化呢?问题一 为什么单例模式中的单例对象是用static修饰?为什么单例模式中的单例选择用静态成员的方式去实现? 单例模式的使用方式是:需要采用一种方法,实现这样的一种工具。即未经实例化的去使用一个类。这个要求决定...原创 2018-09-13 09:23:33 · 271 阅读 · 2 评论 -
【C++ 语法】__VA_ARGS__ 可变参数宏
介绍__VA_ARGS__可变参数宏的用法原创 2023-01-04 15:08:10 · 343 阅读 · 0 评论 -
【C++ 语法】 new和delete
介绍new创建动态数组的主要用法原创 2023-01-04 14:20:23 · 93 阅读 · 0 评论 -
#pragma once 与 #ifndef
在C/C++中,使用#include 包含文件的时候,经常使用方法去防止重复引用,产生二义性。通常有两种方式:第一种 #ifndef指令方式代码被重复引用,比如说:#ifndef CODE_BLOCK_#define CODE_BLOCK_// code #endif第二种 #pragma once在想要保护的文件开头写入:#pragma once #ifndef 方式特点:C/C++语言的标准支持,比较常用。他不光可以保证一份文件不被包含两次,也能够防止不同文件的完全相同的代原创 2021-09-08 00:20:27 · 303 阅读 · 0 评论 -
【C++ 多态面试问题 】 对象中几个虚函数表指针?虚析构函数?
面试问到多态的问题,我是这样回答的:多态分为编译时多态和运行时多态。编译时多态就是函数重载来实现的。运行时多态是用虚函数来实现。主要是子类重写父类的虚函数,使用父类引用或者父类指针来调用。对象首地址是有一个指向虚函数表的指针的。虚函数表存储虚函数的地址。汇编的时候直接调用虚函数表中对应的函数。 Base_L* b = new Son(); b->mm(); 或者 Son son; Base_L& refBase = son; refBase.mm()原创 2021-08-25 00:11:47 · 2326 阅读 · 3 评论 -
【STL set】set multiset
set set<string> aset{"a","b","c","d"};at 未提供[] 未提供lower_bound 返回第一个大于或等于的对象upper_bound 返回第一个大于的对象equal_range 他返回的是一个pair,first为lower_bound 结果,second为upper_bound 结果insertemplace 插入emplace_hint 指定位置插入lower_bound upper_bound equal_rang原创 2021-08-24 23:52:34 · 142 阅读 · 0 评论 -
【STL map】map multimap
map红黑树实现-红黑树算法和应用(更高级的二叉查找树)map 存储的是 pair 对象按照key的大小 按照既定规则排序(默认是升序排序)std::make_pairinsertemplace遍历[] 获取元素 找不到为 该类型的默认值 string “” int 0重复的就是更新 user.insert( user.begin(),std::make_pair("STL教程","http://baidu.com"));insert user.insert( user原创 2021-08-24 23:51:05 · 132 阅读 · 0 评论 -
【STL list】【数据库连接池背景】理解list使用
数据库连接池在数据库链接池的初始化的过程中,call Init(url,user,password,port,maxCount…)其中使用list来组织代码,list本身是双向链表容器push_backpush_frontrbeginrendinsertsplice·eraseBidirectionalIterator 双向迭代器 int Size = 10; for (int i = 0;i < Size;i++) { int* pvalue原创 2021-08-20 16:47:39 · 167 阅读 · 0 评论 -
【STL vector】【AtoWBridge】使用 用法
一个是父窗口 一个子窗口(SDL视频窗口)内部开了一个进程,一直有一个循环去处理事件?我也看不太懂,需要深入研究。 std::vector<std::shared_ptr<CAtoWChild>> m_childList; for (int index = 0; index < m_childList.size(); index++) { if (m_childList[index]->m_parentWindow == handle || m_child原创 2021-08-20 16:41:13 · 122 阅读 · 0 评论 -
C++ 内存布局
参考第5篇:C/C++ 内存布局与程序栈原创 2021-05-18 18:32:50 · 156 阅读 · 0 评论 -
main 带参函数
int main(int argc,char * argv[]){ return 0;}argc为参数个数argv为字符串数组,c中字符串用char[] 来存储,argv[0] argv[1] argv[2]原创 2021-05-18 14:04:52 · 76 阅读 · 0 评论 -
循环和条件的特殊写法
我平时不喜欢写{} 就研究怎么才能不写{}if的三种写法第一种if(true){ //do A}else{ //do B}OR //我喜欢这样写 这样更好 这样更紧凑if(true){ //do A}else{ //do B}第二种if(true) 一条语句;else 一条语句;第三种if(true) 一条语句;else 一条语句;if(true) 一条语句;一条语句;那么相当于:if(true) a语句;b语句;//if的逻辑在a语句结原创 2021-04-16 18:55:10 · 109 阅读 · 0 评论 -
函数指针的使用
typedef int (*MyFunc)(); MyFunc Func1; int Func2(){ printf("This is a sample output!\n"); return 0;}int main(int argc, char* argv[]){ Func1 = Func2; //将函数Func2的函数地址赋值给Func1函数指针 printf("%x\n", Func1); printf("%x\n", *Func1); print.原创 2021-04-02 16:07:23 · 80 阅读 · 0 评论 -
C++ 左值和右值、移动语义
void fun1(int& var){ cout<< var << endl;}void fun2(int&& var){ cout<< var << endl;}int main(){int val = 12;fun1(12); //errorfun1(val);fun2(2);}什么是左值什么是右值?左值:指表达式结束后依然存在的持久对象右值:表达式结束就不再存在的临时对象左值和右值的区别:左值持原创 2021-03-26 16:16:59 · 218 阅读 · 0 评论 -
网络字节序和主机字节序
大端字节序和小端字节序大端字节序是符合人类阅读习惯的字节序,高地址存在低位,低地址存在高位。小端字节序的排序方式对于cpu寻址更为便捷,低地址存在低位,高地址存在高位。一个数据0x01234567大端字节序存储的方式是:0x01234567小端字节序存储的方式是:0x67452301如何测试主机字节序void main(){ int a = 0x01234567; char* p = (char*)&a; printf("%x\n",*p); printf(原创 2021-03-25 11:03:15 · 209 阅读 · 0 评论 -
指针数组和数组指针
说明一下指针数组和数组指针?面试中遇到这个问题。分别写下两行代码。int *p[10];int (*p)[10];为什么呢?这要从c语言的运算符优先级入手去理解这个问题。C语言运算符结合规定:优先级高的先结合同优先级运算符按照规律,从右向左或从左向右查优先级表 ()> [] > *,所以对于:int *p[10];//首先是 [10] 明确是数组 数组名字p 保存的类型是 int*//保存指针的数组即**指针数组**int (*p)[10];//首先是{*p}指针原创 2021-03-19 22:40:06 · 74 阅读 · 0 评论 -
int转换成string的方法
记录一下用到过的int转换成string的两种方法to_string函数第一种是to_string函数,这是C++11新增的,使用非常方便,简单查了下:C++11标准增加了全局函数std::to_string,以及std::stoi/stol/stoll等等函数(这几个就是string转int,long,以及long long啦~)全局函数std::to_stringList itemstd::stoistd::stolstd::stollto_string这个函数还是很强大的!str转载 2021-03-19 23:57:51 · 5652 阅读 · 0 评论