C++
Eric_Tseng
https://github.com/Questzzq
展开
-
c++内存泄露内存溢出和野指针
文章目录一. 内存泄漏二. 内存溢出三. 野指针一. 内存泄漏new或者malloc等动态申请空间之后没有手动delete或者free掉,导致一直占据着内存单元,不能被任何程序再次使用,直到程序结束。内存泄露指的是堆内存的泄露。由程序申请的一块内存,且没有任何一个指针指向它,则会发生内存泄露。#include <iostream>#include <malloc....原创 2020-03-22 12:09:15 · 436 阅读 · 0 评论 -
c++类实例化的大小
1. 计算方法:类的实例化就是在内存中分配一块地址。类的大小与它当中的构造函数,析构函数,静态数据成员,非虚成员函数,静态成员函数无关,只与它当中的非静态成员数据以及虚函数有无有关;类的静态数据成员被编译器放在程序的一个global data members中,它是类的一个数据成员.但是它不影响类的大小,不管这个类实际产生了多少实例,还是派生了多少新的类,静态成员数据在类中永远只有一个实体...原创 2020-03-22 04:38:55 · 319 阅读 · 0 评论 -
单例模式
文章目录一. static 关键字1. 类中静态变量和静态成员函数二. 单例模式1. 饿汉模式:2. 懒汉模式:3. C++11 简化版一. static 关键字1. 类中静态变量和静态成员函数1):类的静态成员:①:静态成员变量属于整个类所有②:静态成员变量的生命期不依赖于任何对象,为程序的生命周期③:可以通过类名直接访问公有静态成员变量④:所有对象共享类的静态成员变量⑥:可以...原创 2020-03-22 02:25:53 · 156 阅读 · 0 评论 -
c++11并发
转载文章目录一. 多线程并发1. 与 C++11 多线程相关的头文件2. join() 函数与 detach() 函数3. mutex 互斥量4. 原子变量5. 使用 join() 函数6. 时间等待相关问题一. 多线程并发1. 与 C++11 多线程相关的头文件C++11语言本身支持多线程,和平台无关;c++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<atomi...转载 2020-03-16 12:03:12 · 241 阅读 · 0 评论 -
公平洗牌算法
文章目录1. c++ 库函数 rand() 以及 srand() 的使用2. 公平洗牌算法1. c++ 库函数 rand() 以及 srand() 的使用使用rand()和srand()必须引入头文件#include <cstdlib>基本用法:randomnNum = rand(),但实际是伪随机,该算法需要一个起始值,称为种子,以生成数字。如果没有给出一个种子,那么它...原创 2020-03-15 22:57:17 · 322 阅读 · 0 评论 -
深信服面试记录
下午深信服第一面,本人投递的是 C/C++ 软件开发工程师(云计算、网络安全方向,深圳研究所)职位。原创 2020-03-05 12:30:17 · 1295 阅读 · 0 评论 -
面试常见-海量数据处理
转载 + 修改1. 如何从大量的 URL 中找出相同的 URL?给定a、b两个文件,各存放50亿个URL,每个URL各占64B,内存限制是4GB,请找出a、b两个文件共同的URL方法总结:哈希取余,分而治之,哈希查重50×109×64÷210≈320GB50 \times 10^9 \times 64 \div 2^10 \approx 320 GB50×109×64÷210≈320G...转载 2020-03-05 12:15:29 · 413 阅读 · 0 评论 -
面试算法(一)
问题: 给定 N 个数, 判断数组中是否包含重复数字#include<iostream>#include<ctime>using namespace std;//判断数组中是否包含重复数字bool isDuplicate(int val[], int n) { for(int i=0;i<n;i++) { if(val[i]!=...原创 2020-03-03 13:23:27 · 287 阅读 · 0 评论 -
面试整理
如何调试程序:调试的过程中,不怕崩掉,就怕什么错误信息都没有。首先,既然 down 掉了,那么肯定会有错误信息,这个通常是出在调试环境的 console 或 log 文件中,根据错误信息的内容初步判断错误类型,如果是编译后的初次调试,大部分情况下是空指针(空内存)访问错误,即实际为 null 的内存被使用,当然也可能是其他错误。无论怎样,在这个位置加入断点,即在这行代码不出错,一旦执行该行,程...原创 2020-03-02 00:27:46 · 128 阅读 · 0 评论 -
C++ 知识点汇总(持续更新)
1. 引用:引用作为别名时,声明时就必须初始化常用作函数得形参,使用引用即使用源数据,而不是其副本=\传递类对象参数得标准方式一般是按引用传递指针是变量,可重新赋值,但引用不行使用时必须初始化,且不能再指向其他变量2. 内联函数3. 默认参数的函数函数中某个参数设置了默认值,则它右边的参数也都要有默认值4. 函数重载5. extern "C 主要用于能...原创 2020-02-27 12:24:40 · 927 阅读 · 0 评论 -
C++ 知识点整理
1. static关键字①:全局静态变量全局变量前加上关键字 static,全局变量就定义成一个全局静态变量。全局静态变量存在于静态存储区,在整个程序运行期间一直存在。未经初始化的全局静态变量会被自动初始化为 0。全局静态变量在声明他的文件之外是不可见的,准确地说是从定义之处开始,到文件结尾。②:局部静态变量在局部变量之前加上关键字 static,局部变量就成为一个局部静态变量。...原创 2020-02-27 12:23:28 · 186 阅读 · 0 评论 -
C++ 使用 cin 和 cout 解决进制转换
默认状态下,数据按 10 进制输入输出但是 oct 和 hex 和 dec 可以指定以八进制, 十六进制, 或者十进制输入输出#include <iostream>using namespace std;int main(){ int x; while(cin >> hex >>x) { cout << d...原创 2020-02-12 23:21:55 · 451 阅读 · 0 评论 -
查找兄弟单词
题目链接#include <iostream>#include <algorithm>#include <vector>using namespace std;bool isBrother(string a, string b) { if((a == b) || (a.size() != b.size())) retur...原创 2020-02-09 02:09:05 · 130 阅读 · 0 评论 -
泛型编程 整理笔记
C++ 中, 模板使得算法独立于存储的数据类型, 而迭代器使算法独立于使用的容器类型.比如 find_key 函数, 存储的数据结构可能是数组, 或者是链表模板提供了存储在容器中的数据类型的通用表示, 而迭代器提供了遍历容器中的值的通用表示.STL 中:每个容器定义了相应的迭代器类型, 可能是 指针 或 对象迭代器都定义了所需的操作, 如 * 操作或者 ++ 操作每个容器类都有一个...原创 2020-02-01 00:50:08 · 131 阅读 · 0 评论 -
map 整理笔记
map 是关联容器的一种, 其每个元素分为 关键字 和 该关键字的值 两部分map 容器中关键字唯一, 且按关键字排序常见接口接口作用begin()返回指向 map 头部的迭代器end()返回指向 map 末尾的迭代器, 最后一个元素的下一个count()返回指定元素出现的 次数size()返回map中元素的 个数max_size...原创 2020-01-31 02:20:07 · 128 阅读 · 0 评论 -
字串的连接最长路径查找
题目链接#include <iostream>#include <vector>#include <algorithm>using namespace std;int main() { int n; while(cin >> n) { string tmp; vector<string> s; ...原创 2020-01-29 22:25:34 · 141 阅读 · 0 评论 -
求int型正整数在内存中存储时1的个数
题目链接#include <iostream>using namespace std;int main() { int n; int sum; while(cin >> n) { sum = 0; while(n != 0) { if(n % 2 == 1) sum++; n = n&g...原创 2020-01-29 22:22:35 · 137 阅读 · 0 评论 -
密码验证合格程序
题目链接#include <iostream>#include <cstring>using namespace std;bool isThree(string s) { int ans[4] = {0, 0, 0, 0}; for(int i = 0; i < s.length(); i++) { if(s[i] >=...原创 2020-01-29 22:17:16 · 128 阅读 · 0 评论 -
C++11新增加的两种 for 循环
1. 基于范围(range-based)的 for 循环#include <iostream>#include <vector>using namespace std;int main() { double prices[5] = {1.1, 2.2, 3.3, 4.4, 5.5}; for(double i: prices) c...原创 2020-01-29 19:48:46 · 728 阅读 · 0 评论 -
deque 整理笔记
/* * deque内部会维护一个map(注意!不是STL中的map容器). * 即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域. * 这个区域称为缓冲区,缓冲区用来保存 deque 中的数据. * 因此deque在随机访问和遍历数据会比vector慢. * deque头尾两端分别做插入和删除操作都是常数时间. **/#include <iostrea...原创 2020-01-29 01:18:57 · 131 阅读 · 0 评论 -
string整理笔记
string#include <iostream>#include <string>#include <algorithm>using namespace std;int main() { string string1; string1 = "1234"; cout << string1 << endl...原创 2020-01-29 00:41:17 · 156 阅读 · 0 评论 -
其他数据类型转 string 的方法
1. 利用 C++11 新增加的 to_string 函数string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string t...原创 2020-01-28 21:40:54 · 337 阅读 · 0 评论