C++总结
denglin12315
热爱技术和比较古老的游戏
展开
-
C++ 继承
原创 2022-01-04 09:21:27 · 198 阅读 · 0 评论 -
C++ protected
原创 2022-01-04 08:57:44 · 434 阅读 · 0 评论 -
C++ stack类实现十进制到任意进制转换
一、八进制的142转换成十进制1*8^2 + 4*8 + 2*8^0 = 64 + 32 + 2 = 98二、十进制的98转成八进制总结:将上面两个方向的转换过程对比来看就可以知道为什么要逆序输出了 其他进制转换方法一样三、C++ Stack实现十进制到任意进制转换代码#include <iostream>#include <stack>using namespace std;void convert(stack<char&...原创 2021-10-09 15:27:45 · 687 阅读 · 0 评论 -
C++运算符重载
一、示例代码#include<iostream>class Box{ public: void setbox(int len, int wid, int height); int getvol(); Box operator+(const Box& b); private: int len;原创 2021-09-09 10:08:20 · 102 阅读 · 0 评论 -
C++ memory order 与atomic类型变量
一、memory order产生的历史,用来解决什么问题? 在多核编程中,我们使用锁来避免多个线程修改同一个数据时产生的竞争条件。但是,锁会消耗系统资源,当锁成为性能瓶颈的时候,就需要使用另一种方法——原子类型。c++11中引入了原子类型atomic。 但仅靠原子类型实现不了对资源的访问控制。这造成的原因是编译器和CPU(乱序执行)对单个线程内的指令流实施了指令重排,只要不存在依赖,代码中后面的指令可能会被放在前面,从而先执行它——这将导致多线程间对共享数据的读写顺序会发生变化。cpu这...原创 2021-08-30 11:32:11 · 185 阅读 · 0 评论 -
C++ lambda表达式
一、作用lambda表达式可以编写内嵌的匿名函数。二、格式[捕获] (形参) { 函数体 } ( 实参 );三、举例1、值捕获int main(){ int a = 123; auto f = [a] { cout << a << endl; }; a = 321; f(); // 输出:123}2、引用捕获int main(){ int a = 123; auto f = [&a] { co...原创 2021-08-17 19:52:38 · 74 阅读 · 0 评论 -
C++类模板
一、类模板知识框架二、类模板支持缺省模板实参template <typename T, typename CONT = std::vector<T> > //实现stack默认容器是vectorclass Stack { private: CONT elems; public: void push(T const &); //压入元素 void pop();}template..原创 2021-07-31 16:22:48 · 83 阅读 · 0 评论 -
C++模板和函数模板
一、模板和模板函数的关系二、模板函数的定义template<typename T> //模板参数T add(const T &a, const T &b) //调用参数{ return a+b;}三、模板函数的调用int main(){ int a=6,b=7; std::cout << add(...原创 2021-07-31 15:06:06 · 128 阅读 · 0 评论 -
C++ 结构体模板使用示例
class是声明数据类型参数标识符T的关键字(也可以用typename)。这样,在后面的定义中,凡希望根据实参数据类型来确定数据类型的变量,都可以用T来说明,从而使这个变量可以适应不同的数据类型。C++结构模板的例子:template<class T1,class T2, class T3, class T4,class T5>struct a { T1 t1; T2 t2; T3 t3; T4 t4; ...原创 2021-07-26 19:38:50 · 5260 阅读 · 0 评论