c++
文章平均质量分 76
水木流年追梦
清华大学计算机研究生,专研算法工程
展开
-
C++面试必备问题
一、指针和引用的区别二、static 关键字的用法和作用三、const 关键字阻止一个变量被修改函数声明内可以使用const 修饰形参,表明其是一个输入参数,在函数内部不可以改变其值const 的几种用法:四、虚函数、内联函数虚函数用于实现运行时的多态,实现方式:C++ 内存模型规定最开始的四个字节(32位机器)为指向虚函数表的指针(vptr), 当把子类的实例赋值给基类指针,基类的vptr就会指向子类的虚函数表内联函数在编译时将所有运用内联函数的地方替换为代码块五、构造函数不可以为虚函数,析构函数需要为虚原创 2022-06-10 21:36:54 · 550 阅读 · 3 评论 -
第十五章 面向对象程序设计
第十五章 面向对象程序设计OOP:概述面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承和动态绑定。 继承(inheritance): 通过继承联系在一起的类构成一种层次关系。 通常在层次关系的根部有一个基类(base class)。 其他类直接或者简介从基类继承而来,这些继承得到的类成为派生类(derived class)。 基类负责定义在层次关系中所有类共同拥有的成员,而每个派生类定义各自特有的成员。 对于某些函数,基类希望它原创 2020-05-24 16:31:06 · 259 阅读 · 0 评论 -
第十三章 拷贝控制
第十三章 拷贝控制拷贝控制操作(copy control):拷贝构造函数(copy constructor) 拷贝赋值运算符(copy-assignment operator) 移动构造函数(move constructor) 移动赋值函数(move-assignement operator) 析构函数(destructor)拷贝、赋值和销毁拷贝构造函数如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。 class Foo{ p原创 2020-05-24 16:23:09 · 193 阅读 · 0 评论 -
c++ primer课后题答案 第9章 : 顺序容器
练习9.1 对于下面的程序任务,vector、deque和list哪种容器最为适合?解释你的选择的理由。如果没有哪一种容器优于其他容器,也请解释理由。(a) 读取固定数量的单词,将它们按字典序插入到容器中。我们将在下一章中看到,关联容器更适合这个问题。(b) 读取未知数量的单词,总是将单词插入到末尾。删除操作在头部进行。(c) 从一个文件读取未知数量的整数。将这些数排序,然后将它们打印到标准输出。解: (a) list ,因为需要频繁的插入操作。(b) deque ,总是在头尾进行插入、删除操作。原创 2020-05-24 16:16:34 · 551 阅读 · 0 评论 -
c++ primer练习题 第七章 类 (Class)
练习7.1 使用2.6.1节定义的Sales_data类为1.6节的交易处理程序编写一个新版本。解:#include <iostream>#include <string>using std::cin; using std::cout; using std::endl; using std::string;struct Sales_data{ string bookNo; unsigned units_sold = 0; double rev原创 2020-05-24 15:29:35 · 488 阅读 · 0 评论 -
一文总结More Effective c++
仔细区别 pointers 和 references(当你知道你需要指向某个东西,而且绝不会改变指向其他东西,或是当你实现一个操作符而其语法需求无法由 pointers 达成,你就应该选择 references;任何其他时候,请采用 pointers) 最好使用 C++ 转型操作符(static_cast、const_cast、dynamic_cast、reinterpret_cast) 绝不要以多态(polymorphically)方式处理数组(多态(polymorphism)和指针算术不能混用;数组原创 2020-05-24 00:37:06 · 370 阅读 · 0 评论 -
Microsoft C++ 异常: 内存位置处的 std::bad_alloc问题解决办法
在vs2017写c++的时候遇到了这种问题,异常出现在vector申请了过多的内存,大概是2g多的时候就出现了异常,后来发现是因为处于x86模式运行,改为x64模式运行就可以解决问题。...原创 2019-10-09 22:58:50 · 23333 阅读 · 11 评论 -
竞赛常用STL汇总
1.string:基本字符系列容器,可以看做string类,提供了添加、删除、替换、查找和比较等丰富的方法2.vector:向量容器,不但能像数组一样对元素进行随机访问,还能在尾部插入元素,完全可以替代数组。具有内存管理功能,对于元素的插入和删除,可动态调整所占的内存空间。3.list:双向链表数据结构(需要注意的是由于是链表,不像vector迭代器可以直接+n,这里只能++)4.se原创 2017-02-26 11:50:47 · 1122 阅读 · 0 评论 -
c++学习总结-2
命名空间的定义:namespace namespace_name{ //代码声明}为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称和::符号可以使用using namespace加上命名空间的名字,这样之后的代码将直接使用该命名空间而不用在前面加上命名空间的名称。命名空间可以嵌套,可以用::访问嵌套的命名空间。模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的原创 2017-02-25 21:11:21 · 400 阅读 · 0 评论 -
C++学习总结-1
我的确发现Java和c++有太多类似的地方,尽管写的方式不同,但很多思想完全相同,甚至很多特性的名字也是相同的。 1. 函数重载规则: 函数名相同 参数个数不同,参数顺序不同,参数类型不同,均可构成重载。 返回值类型不同不可以构成重载 2. 一个字符多种用处的现象叫做重载 3. c++可以为自定义数据类型重载运算符,实现构造数据类型可以像基本数据类型原创 2017-02-25 20:37:24 · 444 阅读 · 0 评论 -
很有趣的STL初学资料
1.泛型程序设计简介与迭代器的介绍 2.常见的STL容器及其例题应用(UVA10474,UVA101,UVA10815,UVA156,UVA540,UVA136HDU1027,CF501B,HDU1716,HDU4277) 3.相关练习和思路1.泛型程序设计简介与迭代器的介绍1.1 泛型程序设计简介 泛型程序设计,简单地说就原创 2017-02-15 22:29:26 · 838 阅读 · 0 评论 -
c++中sort()的用法
C++sort()函数的用法近来看了c++标准库这本书,学到了很多,就把这其中的一点C++sort()函数的用法写下来和大家分享吧!(一)为什么要用c++标准库里的排序函数Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!(二)c++转载 2016-10-30 14:08:04 · 2670 阅读 · 0 评论 -
STL总结(1)
1.栈(Stack):#includestack stack1; //在是默认以deque为容器的stack1.push(element);stack1.pop(); stack1.empty(); //是否为空stack1.size(); //元素个数stack1.top(); //判断是否为栈顶元素2.队列(Queue) #includ原创 2016-10-16 19:10:36 · 399 阅读 · 0 评论