菜鸟笔记
提升您的技术认知

C++ 笔记 第43页

经典面试题之new和malloc的区别

菜鸟阅读 : 2728赞(0)

new和malloc的区别是C/C++一道经典的面试题,我也遇到过几次,回答的都不是很好,今天特意整理了一下。 0.       属性 new/delete是C++关键字,需要编译...

malloc和new的区别?

菜鸟阅读 : 1906赞(0)

解题思路 (1)malloc和new都是在堆上开辟内存的 malloc只负责开辟内存,没有初始化功能,需要用户自己初始化;new不但开辟内存,还可以进行初始化,如new int(10);表示在堆上开辟了一个4字节的int整形内存,初始值是1...

protobuf repeated类型的使用

菜鸟阅读 : 5534赞(0)

protobuf是Google开发的一个序列化框架,类似XML,JSON,基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化。protobuf repeate...

C++ 11的移动语义

菜鸟阅读 : 4486赞(1)

可拷贝和可移动的概念 在面向对象中,有的类是可以拷贝的,例如车、房等他们的属性是可以复制的,可以调用拷贝构造函数,有点类的对象则是独一无二的,或者类的资源是独一无二的,比如 IO 、 std::unique_ptr等,他们不可以复制,但是可...

C++中的异常安全性

菜鸟阅读 : 2235赞(0)

一个函数如果说是“异常安全”的,必须同时满足以下两个条件:1.不泄漏任何资源;2.不允许破坏数据。 我们先通过两个反面的例子开始。 第一个是造成资源泄漏的例子。一个类Type,内含一个互斥锁成员 Mutex mutex,以及一个成员函数vo...

C++多线程编程实例

菜鸟阅读 : 2925赞(0)

     多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平。   其实C++语言本身并没有提供多线程机制(当然目前C++ ...

C++11线程中的几种锁

菜鸟阅读 : 4251赞(1)

线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能与性能成反比。不过我们一般不使用递归锁(C++标准库提供了std::recursive_mutex),所以这里就不推荐了。 互斥锁(Mutex) 互斥锁用于控制多个线...

C++ 单例模式总结与剖析

菜鸟阅读 : 3694赞(0)

C++ 单例模式总结与剖析 单例可能是最常用的简单的一种设计模式,实现方法多样,根据不同的需求有不同的写法; 同时单例也有其局限性,因此有很多人是反对使用单例的。本文对C++ 单例的常见写法进行了一个总结, 包括懒汉式、线程安全、单例模板等...

C++ unordered_map的使用

菜鸟阅读 : 3714赞(0)

std::unordered_map(C++11) template < class Key, // unordered_map::key_type class T, // unordered_map::mapped_type class ...

一种高效的 vector 四则运算处理方法

菜鸟阅读 : 2600赞(0)

实现 vector 的四则运算 这里假设 vector 的运算定义为对操作数 vector 中相同位置的元素进行运算,最后得到一个新的 vector。具体来说就是,假如 vector d1{1, 2, 3}, d2{4, 5, 6};则, ...