C++
文章平均质量分 56
Grey_Pigeon
卑微小竹,在线学习。努力学好,变成巨佬。
展开
-
I/O多路复用之select
系统提供select函数用来实现I/O多路复用输入/输出模型。selsect系统调用是用来让我们的程序监视多个文件描述状态变化的。程序会停在select这里等待,直到被监视文件描述符有一个或多个发生状态变化。通常I/O操作有两个步骤,一个是等,另一个是数据搬迁。select主要是在等的这个状态阻塞着直到事件发生。...原创 2022-08-16 21:23:05 · 235 阅读 · 1 评论 -
不同类型数据间的转换
对于标准数据类型的转换,编译系统会给出说明,会让我们知道是怎样进行转换。而对用户自己声明的类型,编译系统并不知道怎样进行类型转换,解决这个问题的关键是让编译系统知道怎样去进行转换,这就需要定义一些专门的函数类处理。......原创 2022-08-13 21:02:17 · 534 阅读 · 0 评论 -
Static 静态成员
Static 静态成员原创 2022-08-12 17:22:30 · 467 阅读 · 0 评论 -
String类的模拟实现
#include <iostream>#include <string>#include <assert.h>namespace bite{ class string { public: typedef char* iterator; private: char* _str; //给出静态顺序表 size_t _size; // 大小 size_t _capacity;原创 2022-01-10 13:59:29 · 340 阅读 · 0 评论 -
如何定义一个只能在堆上生成对象的类?
如何定义一个只能在栈上生成对象的类?首先我们想一下,一个对象它既可以在栈上生成也可以由我们在堆上new生成。现在我们如果只想在堆上生成对象而不能在栈上生成对象,在类外我们是无法完成的,所以我们必须从类的内部来入手。 那么我们开始操作:我们知道类对象的初始化是由类的构造函数完成的,如果我们把类的构造函数访问权限声明为protected,让构造函数不能在类外调用,这样做就保证了在类外不能在栈上生成对象了,但同时,我们也不能在类外new出对象了。怎么办?我们可以在类内new一个对象并且提供一个公有的原创 2021-12-02 19:42:54 · 323 阅读 · 1 评论 -
如何定义一个只能在栈上生成对象的类?
如何定义定义一个只能在栈上生成对象的类???这种题主要考的是对C++语法的理解,以及对C++语法的运用。分析:对象可以在栈上生成也可以由我们在堆上new出来。要想只在栈上生成对象而不能在堆上生成对象在类外是无法完成的,我们必须从类的内部入手。第一种方法时:我们知道类对象的构造是由构造函数完成的,如果我们把构造函数声明为私有或者保护类型,那么在类外就不能调用构造函数,也就不能在类外面new出对象。但这样同时也不能在类外定义对象。对此,我们需要在类里定义一个公有接口来返回成员函数的对象,之后在类外原创 2021-11-25 19:58:13 · 254 阅读 · 1 评论 -
海量数据面试题
1.给出一个超过100G的log file, log中存着ip地址,设计算法找到出现次数最多的ip地址?思路:由于文件超过100G,所以我们只能对文件切分,然后再利用数据结构来求解。难点就是如何切分效率最高???解决方法这个时候我们可以使用哈希切分,将同一个ip都分割在同一个文件,注意同一个ip经过同一个散列哈希函数一定会进入同一个文件中,然后再统计每一个文件中出现最多的ip的次数,最后将这些进行顺序比较就能的到结果。又出现一个新的问题?最极端的情况:如果经过哈希散列函数之后一个ip次数特别多,原创 2021-11-21 20:58:26 · 1164 阅读 · 1 评论 -
this指针
每一个对象中的成员函数都占有存储的空间,如果一个类定义了n个对象的话,那么就有n个大小相等的空间来存放这n个对象的数据成员,但是不同的对象都调用同一个代码段。那我想问一句,当不同对象的成员函数引用数据成员时,怎么能够保证引用的是所指定的对象的数据成员呢?例如:设计一个长方体类#include<iostream>using namespace std;class Box{public: Box(int length = 0, int width = 0, int height =.原创 2021-11-18 19:47:42 · 139 阅读 · 1 评论 -
运算符重载
1.什么是运算符重载?我们已经知道函数重载就是根据不同的参数列表,实现一些类似的新的功能。也就是同一个函数名多个用处。运算符也可以进行重载,比如+,-,*,/都可以重载。甚至如 << (左移),在输出操作中与流对象cout配合使用实现输入操作。 >> (右移), 在输入操作中与流对象cin配合使用实现输入操作。(舍友提问我了,要如何重载<< 和 >>,所以总结一下哈)在C++中,用户不能直接用C++提供的运算符来实现用户自定义类的运算,所以用户必须根据原创 2021-11-16 20:14:28 · 6869 阅读 · 1 评论 -
函数 重载
1.什么是函数重载?函数重在是指在同一个作用域内,有多个函数名相同,但是形参列表不同(参数类型不同,参数个数不同,参数顺序不同),返回值无关,我们将这种叫做重载函数。重载的函数是通过形参列表区分的,和其他无关。一句话来说“一个接口,多种实现”,不仅函数可以重载,运算符也可以重载。例如:如果要实现一个加法运算,加法函数可以是整型也可以是浮点型,就可以使用函数重载实现。这样实现后,我们进行加法运算,则只需要调用ADD函数,编译器会根据我们传递实参的类型和个数,顺序判断想要调用那个ADD函数。注意:m原创 2021-11-15 19:38:27 · 10792 阅读 · 2 评论