1、unordered_map和map unordered_map和map的区别:unordered_map是用哈希表实现的,map是树形结构实现。 它们的用法是类似的,map是排序的,unordered_map是无序的。 map的定义:unordered_map<int, int> mp; map的遍历: for (auto &[key,val] : mp) { .... }  

2021年9月13日 0条评论 38点热度 0人点赞 2studysite 阅读全文

C++能投哪些岗位? 嵌入式研发岗位 嵌入式方向可能比较偏向于硬件一些,比如国内的华为、中兴、小米、紫光展锐这些公司都是招嵌入式开发的。 嵌入式开发由于涉及硬件比较多,所以对于通信、电信、自动化这些偏硬件的专业会友好一些,嵌入式开发一般会涉及到一些网络编程、Socket通信之类的,还有一些会涉及到并发编程等。 主要的业务方向是物联网以及芯片等方向,国家也是大力发展芯片方向,所以嵌入式也是一个不错的职业方向。 后端/服务器研发 这是C++方向的最大缺口之一了,同样也是竞争最为激烈的岗位之一,后端研发要求掌握了解的知识…

2021年8月24日 0条评论 1点热度 0人点赞 2studysite 阅读全文

:anguished:C/C++ 为不影响同学们阅读,参考文献及引用出处已于本小节末尾按照顺序统一给出,其余科目类似。 1、在main执行之前和之后执行的代码可能是什么? main函数执行之前,主要就是初始化系统相关资源: 设置栈指针 初始化静态static变量和global全局变量,即.data段的内容 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL等等,即.bss段的内容 全局对象初始化,在main之前调用构造函数,这是可能会执行前的一些代码 将m…

2021年8月24日 0条评论 1点热度 0人点赞 2studysite 阅读全文

1、类的对象存储空间? 非静态成员的数据类型大小之和。 编译器加入的额外成员变量(如指向虚函数表的指针)。 为了边缘对齐优化加入的padding。 空类(无非静态数据成员)的对象的size为1, 当作为基类时, size为0. 2、简要说明C++的内存分区 C++中的内存分区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区和代码区。如下图所示 栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有…

2021年8月24日 0条评论 1点热度 0人点赞 2studysite 阅读全文

1、 在main执行之前和之后执行的代码可能是什么? main函数执行之前,主要就是初始化系统相关资源: 设置栈指针 初始化静态static变量和global全局变量,即.data段的内容 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL等等,即.bss段的内容 全局对象初始化,在main之前调用构造函数,这是可能会执行前的一些代码 将main函数的参数argc,argv等传递给main函数,然后才真正运行main函数 __attribute__((co…

2021年8月24日 0条评论 2点热度 0人点赞 2studysite 阅读全文

1、什么是STL? C++ STL从广义来讲包括了三类:算法,容器和迭代器。 算法包括排序,复制等常用算法,以及不同容器特定的算法。 容器就是数据的存放形式,包括序列式容器和关联式容器,序列式容器就是list,vector等,关联式容器就是set,map等。 迭代器就是在不暴露容器内部结构的情况下对容器的遍历。 2、解释一下什么是trivial destructor “trivial destructor”一般是指用户没有自定义析构函数,而由系统生成的,这种析构函数在《STL源码解析》中成为“无关痛痒”的析构函数。…

2021年8月24日 0条评论 2点热度 0人点赞 2studysite 阅读全文

1、C++ 11有哪些新特性? nullptr替代 NULL 引入了 auto 和 decltype 这两个关键字实现了类型推导 基于范围的 for 循环for(auto& i : res){} 类和结构体的中初始化列表 Lambda 表达式(匿名函数) std::forward_list(单向链表) 右值引用和move语义 ... 2、auto、decltype和decltype(auto)的用法 (1)auto C++11新标准引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属的类型。和原…

2021年8月24日 0条评论 1点热度 0人点赞 2studysite 阅读全文

1、C++的多态如何实现 C++的多态性,一言以蔽之就是: 在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据所指对象的实际类型来调用相应的函数,如果对象类型是派生类,就调用派生类的函数,如果对象类型是基类,就调用基类的函数。 举个例子: #include <iostream> using namespace std; class Base{ public: virtual void fun(){ cout << " Base::func()" …

2021年8月24日 0条评论 2点热度 0人点赞 2studysite 阅读全文