每日知识点2019.7.24

线程安全和线程不安全?

1.线程安全:多线程访问时,采用加锁机制,每次只允许一个线程读取数据,保证了数据不被污染。

2.线程不安全:不采用加锁,多个线程可能会修改数据,这样的到的数据就是脏数据。

c++内存泄漏的原因?

1.new和delete没有配套

2.释放对象数组时使用delete,没有使用delete[ ]

3.父类的析构函数没有写成虚函数

4.没有正确释放类的嵌套指针

堆栈溢出的原因?如何解决?

1.局部变量过大

2.函数的调用次数过多(因为每次调用形参和局部变量都要重新压栈)

解决:更改栈的大小或将局部变量前加static,使其变成静态变量,或者将变量变成指针

c++标准库和vector?

c++标准库共有50个标准头文件,分为10类(<iostream>...)

vector是一个动态数组,内存连续,因此每次的删除、插入都会造成内存的移动,很慢,但是适合于经常访问的场合。

c++11新特性?

1.auto 自动识别变量类型

2.decltype 返回值是变量类型,可用作变量的别名delctrype(expression)

  • 如果ex是标识符或类的成员的访问,返回值就是ex的类型
  • 如果ex是一个左值,那么返回值就是ex的类型后面加&(例:int a = 10;decltype(a) ==>int&)
  • 如果ex是一个函数的调用,那么返回值就是函数的返回值类型

3.nullptr 空指针(解决了NULL的二义问题)

NULL 0/空指针

4.lambda表达式[ ]( ){ }

vector和list的区别?

vector 动态数组 内存连续 经常访问时使用

list 双向链表 内存不连续 经常插入/删除使用

C语言函数的调用过程?

1.从栈内存中分配空间

2.参数入栈

3.进行运算

c++的基本数据类型和派生类类型?

1.int 整型

2.float 浮点型(double)

3.bool 逻辑型

4.char 字符型

5.void 控制型

修饰符:long、short、signed、unsigned

全部评论

相关推荐

程序员小白条:可以,技术栈别写太多,因为学院本这块,没必要太多,项目的话可以提前,技术栈放最下面,要么技术栈放最前面,多准备下八股文
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务