![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
潇湘夜雨~
不积跬步,无以至千里
展开
-
C++中的override关键字
在C++11中引入了override关键字,以帮助防止在覆盖虚函数时出现的一些小问题。例如,在下面的程序中就存在这样的错误。// This program has a subtle error in the virtual functions.#include <iostream>#include <memory>using namespace std;class Base{ public: virtual void func...原创 2021-08-02 10:28:35 · 1288 阅读 · 0 评论 -
LRU算法(C++实现)
一、LRU算法简介对于web开发而言,缓存必不可少,也是提高性能最常用的方式。无论是浏览器缓存,还是服务端的缓存(通过memcached或者redis等内存数据库)。缓存不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么,了解常见的缓存淘汰算法的策略和原理就显得特别重要。常见的缓存算法LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那...原创 2020-03-29 17:36:01 · 11112 阅读 · 6 评论 -
C++ read函数与write函数
read和write函数为Linux系统函数,都需要包含头文件:<unistd.h>read函数read系统函数从打开的设备或文件中读取数据,即将数据从外设上经过内核读到用户空间,函数原型如下:#include <unistd.h>ssize_t read(int fd, void *buf, size_t count); 从 fd 中读取数...原创 2020-02-03 22:18:05 · 8390 阅读 · 0 评论 -
C++函数参数中&和*的意义
写这篇博文的动机是,在看Linux网络编程时,看到//bind 函数定义int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);//函数调用bind(lfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr));觉得在函数参数中一会用 *,一会...原创 2020-02-03 20:52:56 · 26432 阅读 · 7 评论 -
C++ 传入传出参数 详解
一、基本概念C++ 中的参数,既可以当做传入参数,也可以当做传出参数,具体要看参数的数据类型。非指针,非引用类型:一定是当做传入参数; 指针,引用类型:既可以当做传入参数;也可以当做传出参数;甚至可以同时是传入参数,也是传出参数。其次要看对参数进行的操作:如果是只有读取,没有修改的,那就是传入参数,这时可以加上 const 限定符,以防不小心修改了参数。 如果只有对参数进行写入,...原创 2020-02-03 17:53:53 · 5556 阅读 · 0 评论 -
C++简单服务器实现
目录一、思路二、基本TCP套接字编程2.1socket函数2.2 bind函数2.3 socket地址结构2.4 listen函数2.5 accept 函数三、代码实现四、效果展示看完一阶段视频,总结一下,写一个C/S模型的服务器与客户端,实现客户端输入一串小写字符,服务端将每个字符转换为大写并回送给客户端。一、思路此服务器客户端采用的是TCP协议,...原创 2020-02-01 22:38:41 · 7923 阅读 · 5 评论 -
剑指offer--面试题41:数据流中的中位数
题目 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。思路采用大根堆+小根堆结合的方法,且满足: ① 两个堆中的数据数目差不能超过1,这样可以使中位数只会出现在两个堆的交接处; ...原创 2019-11-20 17:01:39 · 115 阅读 · 0 评论 -
段错误--segment fault
最近在Qt中经常碰到段错误,查阅网上资料得知,段错误是指程序访问(读写)了系统未给予读写权限的内存空间。段错误出现的可能原因段错误主要有以下几种可能:访问了不存在的内存空间;访问了系统保护的空间;对只读内存空间写覆盖等。常见的形式有数组越界访问;野指针操作等。一旦一个程序发生了越界访问,cpu就会产生相应的保护,于是segmentation fault就出现了。段错误应...原创 2019-10-30 16:11:10 · 645 阅读 · 0 评论 -
Wireshark分割PCAP数据包
原始pcap包如图,包含了七万多条数据,不便测试,因此想从中提取出三条数据作为测试。在终端中,先cd到pcap包的存放路径下:然后输入命令:即可拆分原始的pcap数据包(IMU_test_data_20190619.pcap),得到多个小pcap数据包,每个含有3条数据:...原创 2019-10-29 09:15:11 · 3501 阅读 · 0 评论 -
Qt中报错 collect2:ld returned 1 exit status
今天在编写Qt程序时,报错 collect2:ld returned 1 exit status网上基本说是大概分为以下三种情况:1、编译成功的例子在后台执行,有时一闪而过,如果再次build ,则会提示上述错误。解决方法:打开任务管理器,找到相应的exe进程,关闭即可;或者直接关闭QtCreator。2、没有编译成功的情况下,最常见情况是程序本身需要include...原创 2019-10-09 15:50:28 · 1540 阅读 · 0 评论 -
C++11新特性之大括号初始化
在C++11中,vector的初始化和等号赋值都出现了这样的语法vector<int> nums({1, 2, 3, 4, 5});vector<int> nums3 = vector({1, 2, 3, 4, 5});vector<int> nums2;nums2 = {1, 2, 3, 4, 5};而在C++11以前,我们只能:、int...原创 2019-08-22 21:39:21 · 7625 阅读 · 0 评论 -
LeetCode 17. 电话号码的字母组合(C++)
题目描述:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。...原创 2019-08-22 17:11:55 · 350 阅读 · 0 评论 -
C++报错 sprintf': This function or variable may be unsafe. Consider using sprintf_s
在VS 2019中编译 C++ 语言项目,如果使用了 sprintf函数,编译时便会提示如下错误:error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNIN...原创 2019-08-05 16:51:39 · 10490 阅读 · 2 评论 -
邓俊辉C++ 第一章 代码1.1整数数组的起泡排序
第一章代码1.1 (第五页)起泡排序#include<iostream>using namespace std;const int N = 5;void bubblesort1A(int a[], int n);//函数的原型int main(){ int a[N] = { 212,44442,543,22,41 };//数组的定义和初始化,这里采用的是大括号初始...原创 2019-06-14 22:53:03 · 352 阅读 · 0 评论 -
VC6.0中遇到错误 1.obj : error LNK2005: _main already defined in qiao.obj
在VC6.0中遇到错误1.obj : error LNK2005: _main already defined in qiao.obj注意:大家在创建工程的时候想把多个源文件放在同一个工程,就像Java一样,以为便于管理。但是C语言中,一个项目只能有一个main函数,就像在同一个类中只能有一个主函数main方法,C语言中一个项目只能有一个主函数。在编写程序时,每一个程序都是一个proj...转载 2019-05-24 08:58:03 · 1383 阅读 · 1 评论 -
使用VC6.0运行.c文件,遇到错误fatal error C1853: 'Debug/test.pch' is not a precompiled header file created with
fatal error C1853: 'Debug/test.pch' is not a precompiled header file created with this compiler网上查了好多,有两种说法,但都没有解决我的问题:取消VC预编译,这样会使大项目编译变慢,而且取消后仍然无法通过编译。 Rebuild all / 先F7,然后CTRL+F7。 仍然不行真正的原因...原创 2019-05-22 09:53:25 · 1746 阅读 · 0 评论