Albert World


  • 首页

  • 归档

  • 标签

  • 分类

  • 工具

  • 关于

  • 搜索

操作指向类成员的指针需要了解的两个操作符->*和.*

发表于 2018-05-12 | 更新于 2020-02-26 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 2,283(字)   |   阅读时长: 9(分)

前言

关于 ->* 这种写法在很早就在项目代码里见过了,并且还写过,不过当时并没有正确的理解这样写的含义,一直到最近发现这样写很奇怪,于是根据自己的理解,开始改代码,发现无论怎么改都无法通过编译,仔细搜索后才发现这是一种固定的写法,也就是说 ->* 是一个操作符,无法拆分,同时还有一个 .* 也是相同的作用,只不过是用于对象上,而 ->* 是用于对象的指针上。

那么这两个操作符究竟有什么作用呢?实际上它们主要用于操作指向类成员的指针,可能你会说指向类成员的指针直接定义就好了,为什么这么麻烦,还要是用这两个操作符呢?接下来我们举几个例子就明白了。

阅读全文 »

bat批处理替换字符串中匹配的子串

发表于 2018-04-12 | 更新于 2019-11-17 | 分类于 bat |
热度 ℃
  |   字数统计: 548(字)   |   阅读时长: 2(分)

前言

关于字符串的操作通常是编程生涯中不可避免的,在各种竞赛中、工作中常常能使用到,许多语言中都有专门负责处理字符串的模块或者类,对于字符串的替换一般也有专门的函数,比如Lua中的string.gsub()、Python中的replece()等,那么批处理在进行字符串操作的时候,有没有好用的替换函数呢?

阅读全文 »

略显神秘的快速排序

发表于 2018-04-08 | 更新于 2019-11-17 | 分类于 Sort |
热度 ℃
  |   字数统计: 1,957(字)   |   阅读时长: 7(分)

前言

继续我的填坑旅程,上次说到《排序算法系列之(二)——冒泡排序名字最为形象的一个》2017-09-16 10:42:07,又过了半年多,终于再一次鼓起勇气决定聊一聊快速排序的思路,不过与冒泡排序不同的是,这个快速排序的名字似乎和算法的思路没有什么关系,这个名字太抽象了,起这个名字可能当初仅仅是因为它比别的排序快一点。咳咳!

阅读全文 »

神秘莫测的时间复杂度

发表于 2018-03-29 | 更新于 2019-11-17 | 分类于 Thinking |
热度 ℃
  |   字数统计: 2,219(字)   |   阅读时长: 8(分)

前言

说到时间复杂度,作为程序员或多或少都会有所接触,特别是算法工程师肯定是天天和这个概念打交道,其实前几篇总结排序的文章我一直没有提时间复杂度,因为网上太多的文章讲这个概念了,所以我只总结了一下我对几种排序算法的理解,以及简单的实现代码,而当我今天准备总结一下快速排序的时候,我发现各个关于快速排序的文章都有讲到时间复杂度,有的甚至直接就给出 O(N*log(N)),这个对数是以2为底的,还是以10为底的都没有说清楚,这简直让人感到莫名其妙,所以我决定还是简单说一下我对时间复杂度这个概念的理解。

阅读全文 »

bat批处理遍历指定目录下文件并更新

发表于 2018-03-21 | 更新于 2019-11-17 | 分类于 bat |
热度 ℃
  |   字数统计: 1,514(字)   |   阅读时长: 6(分)

前言

先来看这样一个需求,假设有A,B两个目录,其中A目录是资源目录,B目录是工作目录,其中资源目录不定期更新,资源文件都在A目录下,并且没有子目录层级关系,但是资源要被使用时需要更新到B工作目录,B目录根据工程需要建立了一个包含众多子目录的层级体系,这样当A目录中的一个资源文件更新后,需要手动复制A目录中更新的资源文件,然后在B目录中找到对应的位置,然后进行粘贴替换,这样的操作如果很久一次、或者每次只有1、2个文件还好,如果资源文件大范围更新,那么要一个个找到更新文件在B目录中的位置然后替换就成了一件令人苦恼的事情,所以根据这个需求,才有了下面的探索过程。

阅读全文 »

关于游戏中仓库类的设计

发表于 2018-02-25 | 更新于 2019-11-17 | 分类于 Thinking |
热度 ℃
  |   字数统计: 995(字)   |   阅读时长: 3(分)

前言

这个游戏中的仓库类设计开始于春节前,和大家一样,我也是期盼着放假而无心工作,所以在放假前一天虽然蹦出了思维的火花,我却没有使用文字记录下来,但是大致的思路我已经记录到脑子中了,这一次的突然感悟,与上次突然明白什么是选择排序,什么是冒泡排序很类似,都是一瞬间突然明白,是一个从量变到质变的过程,接下来简单记录下我关于仓库的理解。

阅读全文 »

Vim、Xshell、远程终端莫名卡死的原因

发表于 2018-02-03 | 更新于 2019-11-17 | 分类于 Vim |
热度 ℃
  |   字数统计: 647(字)   |   阅读时长: 2(分)

前言

最近通过Xshell连接远程服务器,然后使用Vim修改文件时会莫名其妙的卡死,一开始我还没注意,因为近期的网络一直不太好,经常出现按下一个字母半天才反应过来的情况,所以我没有太在意,直接关闭终端重新打开就好。直到有一天我开着两个终端的时候,Vim又卡着不动了,而另一个终端还以流畅的处理我敲击的命令,我就断定这肯定不是网络原因了。

阅读全文 »

Vim中简单格式化代码

发表于 2018-02-02 | 更新于 2019-11-17 | 分类于 Vim |
热度 ℃
  |   字数统计: 1,199(字)   |   阅读时长: 5(分)

前言

写这个总结的起因是我在把Windows上VS中的代码粘贴在Linux服务器的Vim中时,代码格式惨不忍睹,我就搞不明白为什么它每一行都要向后缩进,搞得我的代码最后像倒立的楼梯似的,就像这样:

1
2
3
4
5
6
7
8
9
int main(int argc, char *argv[])
{
int i=0,j=0;
if (i != 0) {i++; }
else {i--; }
for(i=0;i<5;i++)j++;
printf("i=%d,j=%d\n",i,j);
return 0;
}
阅读全文 »

Mysql查询时case when语句的使用

发表于 2018-02-01 | 更新于 2019-11-17 | 分类于 Mysql |
热度 ℃
  |   字数统计: 1,247(字)   |   阅读时长: 5(分)

前言

前几天在技术论坛论坛上发现一个求助帖,大体意思就是要把一个表中的数据按条件分成两类,每一类排序方式不同,然后整体作为查询的结果集,乍一看这问题不是很难,很多人给出的答案是分别查询排序后再 union合并到一起,但是后来楼主明确指出不想使用 union 操作,这时有一位高人巧用 case when 语句解决了问题,其实这是我第一次接触 case when 语句,于是查询了一下具体用法,在此做个小结,方便日后查询使用。

阅读全文 »

Mysql验证联合索引的最左原则

发表于 2018-01-29 | 更新于 2019-11-17 | 分类于 Mysql |
热度 ℃
  |   字数统计: 2,471(字)   |   阅读时长: 11(分)

前言

如果你接触过数据库,应该听说过在数据库表的某些列上建立索引能够加快查找速度,如果研究更深入一点的人,可能还听说过联合索引,那么索引为什么能够加快查找速度呢?联合索引究竟又是什么呢?下面说说我的简单理解。

阅读全文 »
1…262728
Albert Shi

Albert Shi

阳光总在风雨后,大雨过后是冰雹

273 日志
44 分类
694 标签
RSS
GitHub 简书 StackOverflow CSDN 知乎 墨天轮
Links
  • Web前端导航
  • 文字编码导航
  • 在线代码编译
  • 在线工具集合
  • 在线教程集合
© 2018 - 2024 Albert Shi
Hexo 强力驱动
主题 - NexT.Mist
Unless otherwise specified, this blog is licensed under a CC BY-NC-ND 4.0 International License.