c/c++
Bread Sir
记录算法之路
展开
-
C++之并发编程 第一章 C++并发多线程介绍
1.1 何为并发1.1.1 计算机系统中的并发单个系统中 “同时” 执行多个独立的任务。1.1.2 并发的途径多进程将应用程序分为多个独立的进程,它们同一时刻运行。进程间可以通过一些进程间通信方式(管道、信号、信号量、共享内存、消息队列、套接字等)进行信息传递。优点:操作系统在进程间提供附加的保护操作和更高级别的通信机制,编程简单;可以通过远程连接,在不同的机器上运行独立的进程。缺点:设置复杂、速度慢,运行多个进程需要的开销大。多线程在单个进程中运行多个线程。进程中的所有线程共享原创 2021-09-13 17:35:06 · 297 阅读 · 0 评论 -
C++ STL容器整理
STL有哪些容器?序列容器排序容器哈希容器迭代器序列容器array<T,N>(数组容器)vector<T>(向量容器)deque<T>(双端队列容器)list<T>(链表容器)forward_list<T>(正向链表容器)...原创 2021-08-22 22:26:34 · 111 阅读 · 0 评论 -
C++ 面试题目整理
C++的多态时如何实现的?C++之多态C++ 一篇搞懂多态的实现原理C++的智能指针C++之智能指针C++中 new 和 malloc 的区别C++中new和malloc的区别C++ 内存管理C++之内存管理C++ 类型转换C++之类型转换C++ 友元友元分为友元函数和友元类。友元函数:在友元函数内部可以访问该类对象的私有成员了。友元类:一个类 A 可以将另一个类 B 声明为自己的友元,类 B 的所有成员函数就都可以访问类 A 对象的private或protected成员原创 2021-08-18 18:36:15 · 104 阅读 · 0 评论 -
C++之多态
多态指的是同一名字的事物可以完成不同的功能,可以分为编译时的多态和运行时的多态。编译时的多态指:函数的重载(包括运算符的重载),对重载函数的调用在编译时就能根据实参确定应该调用什么函数。运行时的多态:与继承、虚函数等概念有关。当存在类的层次结构并且它们通过继承而相关时,就会发生多态性。通过虚函数进行实现。多态性意味着对成员函数的调用将导致不同的函数执行,这取决于调用函数的对象的类型。举个例子:#include <iostream>using namespace std;//原创 2021-08-18 18:35:44 · 196 阅读 · 0 评论 -
C++之类型转换
类型转换隐式转换先根据类型转换规则将运算对象的类型统一后再求值。算术转换:把一种算术类型转换成另一种算术类型。整型提升:将小整数类型转换成较大的整数类型。显式转换显式地将对象强制转换成另一种类型。命名的强制类型转换 cast-name<type>(expression); 其中,type为转移的目标类型,expression是要转移的值,cast-name是static_cast, dynamic_cast, const_cast, reinterpret_cast的一种。sta原创 2021-05-25 10:50:07 · 100 阅读 · 0 评论 -
C++ 内存管理
我查了一些资料发现C++内存结构有如下两种说法:栈、堆、全局或静态区、常量区、代码区栈、堆、全局或静态区、常量区、自由存储区两种说法的区别在于代码区和自由存储区,而实际上自由存储区我们可以假定它和堆区没有本质的区别,但是需要知道:堆区是操作系统维护的一块内存,其由程序员自己创建并维护,使用C语言中的malloc 库函数 就可以从堆上动态分配内存;而到了C++我们有一种 关键字 叫做 new ,它是在自由存储区上为对象动态分配内存,它完成两件事,首先底层调用malloc分配内存,然后调用构造函原创 2021-05-25 10:44:21 · 67 阅读 · 0 评论 -
C++之智能指针(shared_ptr, unique_ptr, weak_ptr)
动态内存与智能指针C++动态内存是通过new(在堆中为对象分配空间并返回一个指向该对象的指针)和delete(接受一个动态对象指针并销毁它释放内存)完成。使用动态内存容易出问题:会忘记释放内存从而内存泄漏在还有指针引用内存时候就释放了它从而产生引用非法内存的指针。C++11 提供了两种智能指针类型来管理动态对象。它与普通指针类似,只是它负责自动释放所指向的对象。shared_ptr类多个指针指向同一个对象,当指向一个对象的最后一个shared_ptr被销毁时,shared_ptr类会原创 2021-05-25 10:17:59 · 151 阅读 · 1 评论 -
C++ primer课后习题第六章
6.6#include<iostream>using namespace std;size_t count_add(int n) { // n为形参 static size_t ctr = 0; // ctr为局部静态变量 ctr += n; return ctr;}int main(){ for (size_t i = 0; i != 10; ++i) { cout << count_add(i) << endl; } return 0;原创 2021-04-05 21:02:00 · 59 阅读 · 0 评论 -
二元位运算
因为做了些题都用到位运算,感觉有些运算使用位运算符更简单,现在整理一下。常见的二元位运算是与( & )、 或( | )、 非( ! )、 异或( ^ ) 。它们和对应的逻辑运算非常相似。A B A&B A|B A^B0 0 0 0 00 1 0原创 2017-04-18 23:51:29 · 634 阅读 · 2 评论 -
整型数据范围总结(int,short,long等)
unsigned short 范围:0 ~ 65535 short 范围:-32768 ~ 32767unsigned int 范围: 0~4294967295 int 范围: -2147483648~2147483647 unsigned long 范围: 0~4294967295 long 范围: -2147483648~2147483647long long的最大值:92233原创 2017-04-14 13:38:17 · 10648 阅读 · 0 评论