C咖咖
码龄15年
  • 594,184
    被访问
  • 269
    原创
  • 61,321
    排名
  • 146
    粉丝
  • 5
    铁粉
关注
提问 私信

个人简介:历史不会简单的重复,但历史会惊人的相似

  • 加入CSDN时间: 2007-10-27
博客简介:

janeqi1987的专栏

查看详细资料
  • 4
    领奖
    总分 823 当月 34
个人成就
  • 获得258次点赞
  • 内容获得62次评论
  • 获得818次收藏
创作历程
  • 2篇
    2022年
  • 1篇
    2021年
  • 33篇
    2020年
  • 205篇
    2019年
  • 11篇
    2018年
  • 109篇
    2017年
  • 3篇
    2016年
  • 18篇
    2015年
  • 5篇
    2014年
  • 2篇
    2013年
  • 9篇
    2012年
  • 2篇
    2011年
成就勋章
TA的专栏
  • C++
    61篇
  • 设计模式
    23篇
  • vim
    1篇
  • 5G
    1篇
  • 敏捷开发模式
    3篇
  • STL
    80篇
  • c++11/14
    44篇
  • linux网络soket编程
    22篇
  • linux gdb调试
    4篇
  • linux 系统配置
    11篇
  • tool
    34篇
  • linux 编程
    14篇
  • 算法
    1篇
  • c
    3篇
  • Scott Meyers系列
    96篇
  • C++17
    28篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Beyond Compare对比相同文件仍显示红色

Beyond Compare是一个很不错的文件/文件夹比较软件,在使用它比较文件夹的时候,相同的文件有可能也会被标为红色。然后点击进去一看发现它们都是一样的,再退出来,就变黑了。是什么原因导致了会出现这样的情况呢?下面小编将为你揭晓在Beyond Compare中出现这样情况的原因以及解决该问题的方案。比如下图显示对比结果中,两侧的aaa.xml是一模一样,会话中却以红色标识出来,说明两者不同。在Beyond Compare红色标识文件示例原因分析:之所以标红显示是因为文件的时间戳不一
转载
发布博客 2022.03.17 ·
543 阅读 ·
1 点赞 ·
1 评论

数组指针和指针数组的区别

数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]p++; //该语句执行过后,也就...
转载
发布博客 2022.01.19 ·
80 阅读 ·
0 点赞 ·
0 评论

std::tuple 遍历 传递到函数参数

#include <iostream>#include <tuple>struct Drx{ int a;};struct Mg{ int b;};class MsgBuilder{public: void addData(const Drx& drx){ std::cout << "Drx:" << drx.a << std::endl; } v...
原创
发布博客 2021.12.09 ·
555 阅读 ·
0 点赞 ·
0 评论

gvim8.2 NERDTree中设置根目录和自动启动

在window上安装了gVIm8.2及插件NERDTREE,每次启动gVim的时候根目录不是我想要的。我找到的一个方法只能将就这用下,总比没有的好很多。具体步骤:1. 右键点击gVim,然后在属性的Start in中可以看到的路径是%HOMEDRIVE%%HOMEPATH% 我们把这个修改为自己代码的根目录即可。还有另外一个问题是每次启动的时候还得通过输入NERDTree或者按快捷键才能显示代码目录。在你的_vimrcwe中配置如下:autocmd VimEnter * NERDTr..
原创
发布博客 2020.11.14 ·
446 阅读 ·
1 点赞 ·
0 评论

ubuntu20.10终端只显示当前目录名

今天周末大清早的起来安装了ubuntu20.10,打开终端安装vmware tools的时候发现默认显示的是目录的绝对路径,感觉路径名太长了,看着体验不好。我是只想显示当前目录,这样看起来简洁的很。具体操作如下:步骤一, vi 打开~/.bashrc这个文件步骤二,找到如下PS1并把if和else两个分支的小w修改为大W:注意网上很多方法都是只修改了if分支下的w,并没有修改else分支下的w,导致有些人的修改不生效。步骤三, source一下修改的~/.bashrc这个文件
原创
发布博客 2020.11.14 ·
247 阅读 ·
0 点赞 ·
1 评论

Qt5.12设置支持C++17的方法

在安装目录下找到file.pro文件,我的安装目录如下:C:\Qt\Qt5.12.6\Tools\QtCreator\share\qtcreator\templates\wizards\projects\plaincpp\file.pro将CONFIG += console c++11修改为CONFIG += console c++17 即可。
原创
发布博客 2020.11.05 ·
2021 阅读 ·
0 点赞 ·
0 评论

两个没有排序的vector求是否有交集

#include <iostream> // std::cout#include <algorithm> // std::find_if#include <vector> // std::vectorauto test(const std::vector<int>& va, const std::vector<int>& vb)//auto test(const std::vector<in...
原创
发布博客 2020.09.30 ·
171 阅读 ·
0 点赞 ·
0 评论

5G相关资料下载网址

3gpp文档:https://www.3gpp.org/ftp/Specs/archivehttps://www.3gpp.org/DynaReport/38-series.htmNR frequency bandhttps://www.sqimway.com/nr_band.php
原创
发布博客 2020.09.15 ·
2186 阅读 ·
0 点赞 ·
0 评论

C语言运算符优先级

mark下 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- .
原创
发布博客 2020.07.18 ·
63 阅读 ·
0 点赞 ·
0 评论

std::set自定义排序比较函数

std::set默认是通过std::less函数来比较key值的。#include <iostream>#include <set>void main(){ std::set<int> mySet; // mySet.insert(10); // 默认比较函数为less mySet.insert(20); // 从小到大排序 for(auto it:mySet) { st
原创
发布博客 2020.07.10 ·
1515 阅读 ·
1 点赞 ·
0 评论

ULM图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

在UML中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,如定义一个Employee类,它包含属性name、age和email,以及操作modifyInfo()public class Employee { private String name; private int age; private String email; public void modifyInfo() { ...... }}在UML类图中,类一般由.
原创
发布博客 2020.07.05 ·
495 阅读 ·
0 点赞 ·
2 评论

设计模式原则

软间的可维护性和可复用性知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成:•过于僵硬(Rigidity)•过于脆弱(Fragility)•复用率低(Immobility)•黏度过高(Viscosity)软件工程和建模大师Peter Coad认为,一个好的系统设计应该具备如下三个性质:•可扩展性(Extensibility)•灵活性(Flexibility)•可插入性(Pluggab
原创
发布博客 2020.07.04 ·
203 阅读 ·
1 点赞 ·
0 评论

const iterator与const_iterator的区别

const iterator相当于指针常量。即,指针本身为常量,指针自身不可修改,不能指向其他的元素,但指向内容可修改。 const_iterator相当于常量指针。即,指针指向的内容为常量,指针本身可修改,指向其他的元素,但指向内容不可修改。举例如下:#include <iostream>#include <vector>int main(){ std::vector<int> v{1,3,5,7,9}; const std::vector<
原创
发布博客 2020.06.04 ·
146 阅读 ·
0 点赞 ·
0 评论

ubuntu 源码重装vim

首先卸载自带vi// 彻底卸载 vimsudo apt-get remove vim vim-runtime vim-tiny vim-common vim-scripts vim-doc
原创
发布博客 2020.05.17 ·
423 阅读 ·
0 点赞 ·
0 评论

Ubuntu创建root用户及使用

1. 创建root用户在终端输入sudo passwd root然后回车接着会让你输入当前用户密码。输入按下回车输入两次root密码2.使用root用户su root //提示输入root密码。输入即可或者sudo这种方式也可以...
原创
发布博客 2020.05.17 ·
1297 阅读 ·
0 点赞 ·
0 评论

vmware workstation安装ubuntu20.04图解教程

环境:Win10 64位VMware-workstation-full-15.5.2-15785246Ubuntu版本是 Ubuntu 20.04 LTS 64位 desktop版本下面详细介绍在VMware 虚拟机里安装Ubuntu 20.04 LTS的步骤新建一个虚拟机,选择自定义(高级),然后 点击 下一步2. 点击 下一步3 选择稍后安装操作系统,然后 点击 下一步4客户机操作系统 选择 Linux,版本 Ubuntu 64位(因为下载的是64位的系统,..
原创
发布博客 2020.05.17 ·
6445 阅读 ·
11 点赞 ·
3 评论

std::tie在struct中的用法

#include <iostream>#include <string>#include <map>#include <tuple>using namespace std;struct Test{ int id; std::string name; std::map<int, std::string> address; float wage; auto tie() const {return std::tie(id,.
原创
发布博客 2020.05.09 ·
243 阅读 ·
0 点赞 ·
0 评论

C++设计模式之迭代器模式(Iterator)(行为型)

一 定义有许多中方法可以把对象堆起来成为一个集合(Collection)。你可以把他们放进数组,堆栈,列表或散列表(Hashtable)中,这是你的自由。每一种都有他自己的优点和合适的使用时机,但总有一个时候,你的客户想要遍历这些对象,而当这么做时,你打算让客户看到你的实现吗?我们当然希望最好不要。如何能让客户遍历你的对象而又无法窥视你存储对象的方式,也将学习如何创建一些对象超集合。迭代器...
原创
发布博客 2020.04.24 ·
171 阅读 ·
0 点赞 ·
0 评论

C++设计模式之职责链模式(Chain of Responsibility)(行为型)

一 定义 在很多情况下,可以处理某个请求的对象不止一个,如大学里的奖学金审批,学生在向辅导员提交审批表之后,首先是辅导员签字审批,然后交给系主任签字审批,接着是院长审批,最后可能是校长审批,在这个过程中,奖学金申请表可以看成是一个请求对象,而不同级别的审批者都可以处理该请求对象,除了辅导员之外,学生不需要一一和其他审批者交互,只需等待结果即可。在审批过程中如果某一个审批者任务不符合条件,...
原创
发布博客 2020.04.24 ·
157 阅读 ·
0 点赞 ·
0 评论

C++设计模式之访问者模式(visitor)(行为型)

一定义1 概述在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同。例子1:顾客在超市中将选择的商品,如苹果、图书等放在购物车中,然后到收银员处付款。在购物过程中,顾客需要对这些商品进行访问,以便确认这些商品的质量,之后收银员计算价格时也需要访问...
原创
发布博客 2020.04.23 ·
535 阅读 ·
0 点赞 ·
0 评论
加载更多