offergogo
offergogo
全部文章
分类
C++(42)
C语言(1)
linux(18)
python(1)
剑指offer(2)
未归档(88)
机器学习(1)
深度学习(1)
设计模式(1)
归档
标签
去牛客网
登录
/
注册
offergogo的博客
全部文章
(共155篇)
vector和list的使用及区别
1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。 另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内...
2017-09-25
0
372
智能指针及其解析
1.智能指针:智能指针就是智能的、自动化的管理指针所指向的动态资源的释放,并且可以如同指针一样使用。智能指针是RALL(初始化立即获取资源)思想的一种实现,其中初始化利用构造函数,之后将资源保存起来最后让析构函数自动清理。 2.引入智能指针原因:总的来说,是防止程序执行流的改变、或者人为因素造...
2017-09-07
0
651
模板函数与模板类
模板 模板是泛型编程的基础。所谓泛型编程就是编写与类型⽆关的逻辑代码,是⼀种复⽤的⽅式。 模板分为模板函数和模板类。 1.模板函数 假设现在要实现一个比较数是否相等的重载函数,在以前都要写不同类型的函数,例子如下: bool IsEqual (int left, int right) { r...
C++
模板函数
模板类
2017-08-03
0
501
分析菱形继承
C++中的继承体系,有单继承、多继承、还有复杂的菱形继承,今天我们只讨论菱形继承,以及菱形继承存在的问题,最后我们针对问题给出解决方案。 (1)什么是菱形继承? 顾名思义,菱形继承就是,几个类的继承关系呈菱形状。为此,我们举例解释: 题目:有4个类,Person类、Student类、Teacher...
2017-08-02
0
641
C++多态及其对象模型
一、多态 所谓多态,就是“多种形态”。 在面向对象的方法中一般是这样描述多态的:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。多态性的表现形式之一是:具有不同功能的函数可以用同一个函数名,这样就可以实现用一个函数名调用不同内容的函数。 1.静态多态 #in...
2017-08-02
0
410
C++写时拷贝的不同方案(String类)
String类的写时拷贝,不同方案分析。 在使用String类时使用浅拷贝会产生一块空间析构多次的问题,所以产生了深拷贝,每次对对象进行值和空间同时拷贝,但这样会使用更多的空间。为了避免产生更多的空间,引入写时拷贝,当对空间进行更改时,检查是否有除自己外别的对象使用这块空间,若有,则自己重新开辟空...
2017-07-24
0
468
C++面试中String类的一种写法
#include <utility> #include <string.h> class String { public: String() : data_(new char[1]) { *data_ = '\0'; } String...
2017-07-21
0
394
C++动态内存管理
1.C的动态内存管理细节 C语言使用malloc/calloc/realloc/free进行动态内存管理。 且需要成对使用,开辟空间使用完之后一定要free掉。 其中,malloc和realloc都是开辟一块空间,返回这块空间的起始地址。但二者有区别,malloc开辟空间返回首地址,reall...
C++
动态内存管理
2017-07-21
0
485
对string深拷贝浅拷贝的理解剖析
首先简单谈一下自己的理解: 浅拷贝,即在定义一个类A,使用类似A a; A a1(a);或者A a1 = a; 时候,由于没有自定义拷贝构造函数,C++编译器自动会产生一个默认的拷贝构造函数。这个默认的拷贝构造函数采用的是“位拷贝”(浅拷贝),而非“值拷贝”(深拷贝)的方式,如果类中含有指针变量...
string
深拷贝
浅拷贝
2017-07-19
0
518
实现复数类及简单操作
复数类 复数包含实部和虚部,表示为:a+bi 的形式 复数可以比较两个复数的大小; 两个复数是否相等; 复数前置后置自增自减等操作。 #include <iostream> using namespace std; class Complex { public: ...
2017-07-10
0
373
首页
上一页
7
8
9
10
11
12
13
14
15
16
下一页
末页