![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
一些技巧
不想讀研的研究僧
这个作者很懒,什么都没留下…
展开
-
llvm/clang
llvm是一个底层编译器,它最大的优点是将后端和前端分开,所以广义的llvm指的是一个llvm前端,llvm中端和llvm后端。所以如果需要支持一种新语言,只需要实现一个新的前端;如果需要支持一个新的目标架构,只需要实现一个后端。前端和后端的纽带就是LLVM IR。前端:将一个源程序转成一个LLVM IR的编译器过程:要经过语法分析器,词法分析器,语义分析器,LLVMIR生成器等,clang执行了与前端有关的一些步骤。后端:用于汇编码和机器码的生成。将LLVM IR转换成目标架构的汇编代码或者二进.原创 2021-08-12 13:15:48 · 291 阅读 · 0 评论 -
类如何只能静态分配和只能动态分配
1.首先讲解一下什么是类对象的静态分配和动态分配。类对象的静态分配:例如 A a;这个方式是由编译器在编译阶段完成的,主要是通过直接移动栈顶指针,挪出适当的空间,然后在这个 内存空间上调用构造函数形成一个栈对象。也就是说直接调用类的构造函数来生成一个类对象。类对象的动态分配:例如:A* a = new A();编译器对于类对象的内存分配是在运行时动态分配的,使用new产生的对象会建立在堆区。这个过程分为两步进行:(1)执行函数operator new()函数,找到合适的内存进行分配。(2)调原创 2021-07-26 18:42:58 · 1351 阅读 · 0 评论 -
c++ emplace_back()和push_back()的区别
emplace_back() 和 push_back() 的区别,就在于底层实现的机制不同。push_back() 向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素);而 emplace_back() 在实现时,则是直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程。#include <vector> #include <iostream> using namespace std;clas原创 2021-07-26 15:41:49 · 552 阅读 · 4 评论 -
c++11新特性之 右值引用
1.首先说一下什么是左值和右值左值就是可以取地址 变量;右值不可取地址的变量。2.什么是引用?引用本质是别名,通过引用可以修改变量的值。传递参数时可以避免拷贝。3.什么是左值引用(左值变量前面取&)能指向左值,不能指向右值的引用就是左值引用。int a = 10;int &b = a;int &c = 10;//错误,左值引用指向了右值当然也是可以通过const来指向右值:const int &c = 10;//编译通过const'原创 2021-07-26 15:25:47 · 285 阅读 · 0 评论 -
c++ 11新特性 之 lambda表达式
一、函数对象:先讲一下什么是函数对象,函数对象本质上是一个类,只不过这个类实现了对小括号()的重载,可以像使用函数那样的使用这个类生成的对象,因此被称为函数对象:例子:class test{public: int operator()(int a,int b){ return a+b; }};int main(){ test t; int a = t(1,2); cout << a << endl;}原创 2021-07-26 12:43:04 · 111 阅读 · 0 评论 -
详谈c++中的虚函数
概念:虚函数虚函数表虚函数表指针多态特性的体现1.虚函数引入之后类的变化: 首先创建一个空类A,以及类A的对象aclass A{ };A a;cout << sizeof(a) << endl;我们执行结果是1,//空类的对象也会占用内存空间class A{ void func1(){}; void func2(){};};A a;cout << sizeof(a) <&l...原创 2021-07-23 19:02:56 · 193 阅读 · 2 评论 -
二叉树的先序,中序以及后序遍历(非递归实现)
二叉树的先序遍历(非递归)vector<int> FisrtRoot(TreeNode* root){ vector<int> result; if(root == nullptr){ return result; } stack<TreeNode*> stack_r; stack_r.push(root); while(!stack_r.empty()){ TreeNode* temp = stack_r原创 2021-07-23 13:27:21 · 78 阅读 · 0 评论 -
已知三角形的三个顶点的坐标,求三角形的面积
已知:三角形ABC的三个顶点的坐标为:求:三角形ABC的面积?解1:解2:解2是解1的拓展与延伸,但是在实际的变成过程中,解2更利于我么更快的完成编程。原创 2021-06-27 12:39:32 · 1887 阅读 · 0 评论