C++ Learning 3
第九章 内存模型和名称空间9.1 单独编译和C语言一样,C++也允许甚至鼓励程序员将组件函数放在独立的文件中。
可以单独编译这些文件,然后将它们链接成可执行的程序(通常,C++编译器既编译程序,也管理链接器。)如果只修改了一个文件,则可以只重新编译该文件,然后将它们与其他文件的编译版本链接。这使得大程序的管理更便捷。另外,大多数C++环境都提供了其他工具来帮助管理。例如:UNIX和Linux系统都具有make程序,可以跟踪程序依赖的文件以及这些文件的最后修改时间。运行make时,如果检测到上次编译后修改了源文件,make将记住重新构建程序所需的步骤。
#include提供的功能 :与其将结构声明加入到每一个文件中,不如将其放在头文件中,然后在每一个源代码文件中包含该头文件。这样,要修改结构声明时,只需在头文件中做一次改动即可。另外,也可以将函数原型放在头文件中。因此,可以将原来的程序分成三个部分:
头文件:包含结构声明和使用这些结构的函数和原型;
源代码文件:包含与结构有关的函数的代码;
源代码文件:包含调用与结构相关的函数的代码。
这是一种非常有用的组织程序的策略。例如:如果编 ...
Git 本地配置
添加、修改、删除以及查看本地git的用户名和邮箱1、添加12$ git config --global user.name "yourName"$ git config --global user.email "your@email.com"
2、修改1)覆盖的形式:
12$ git config --global user.name "yourName"$ git config --global user.email "your@email.com"
2)替换的形式:
12$ git config --global --replace-all user.name "yourName" $ git config --global --replace-all user.email "your@email.com"
3、删除12$ git config --global --unset user.name "yourName"$ git co ...
C++ Learning 2
第五章 循环和关系表达式5.1 for循环使用for循环访问字符串123456789101112131415#include <iostream>#include <string>using namespace std;int main(){ cout << "Enter a word: "; string word; cin >> word; //display letters in reverse order for(int i = word.size() - 1;i >= 0;i--) //长度减1是去掉末尾的\0 cout << word[i]; cout << "\nByte.\n"; return 0;}
运行结果:
123Enter a word: animallaminaByte.
前缀格式和后缀格式:i++是后缀递增,
++i是前缀递增。
1234for(n = ...
golangChannel
[TOC]
channle 都是应用于两个go程,一个读,一个写
channel 具有阻塞的作用,类似go程之间对同步资源进行锁机制
具有数据传递的功能
一、无缓冲channel —-(同步)无缓冲channel 定义
var ch =make(chan string ) 或者ch :=make(chan string)
无缓冲channel的说明
ch <- “hehe” 写数据,数据没有被在读,则为阻塞
<-ch 读数据,数据没有没有在写, 则为阻塞
len(ch) :channel中未读取的元素个数,cap(ch):channel中通道的容量 。 都是零
二、有缓冲channel ——(异步)有缓冲channel定义
var ch =make(chan string ,3) 或者ch :=make(chan string ,3)
当存储的元素个数超过了cap(ch) 才会阻塞
三、关闭channel
close(ch) ,不再向对端发送数据
判断chan是否关闭 ,
123456789101112131415161718192021222324252627 ...
同一个世界,同一个疫情
上海感染者超2万3月的末尾,疫情愈发严峻,新增感染者一天比一天多。
仅仅28日、29日一天,上海就新增了超过1万个感染者,本轮累计已经2万多。
我每天看着上海疫情的感染数字,心情真是复杂。
感觉像看着一个多年的学霸,忽然发挥失常,科科不及格。
虽然知道是试题难度增加了,是学霸在探索更好的解题方式,但还是有点惊心。
这两天,很多网友在质疑上海的防控策略,骂上海,骂张文宏,骂他们把防控搞砸了。
我去张文宏的微博,发现最近的评论简直没法看了。
不久前还是“老百姓最喜欢的专家”,转眼就成了“垃圾网宏”。
想想张文宏也不容易,一边焦头烂额抗疫,一边被骂得狗血喷头。
心情肯定比我们还复杂。
疫情这两年,实在发生了太多奇葩事。
也给了人们太多前所未有的感悟。
01 世事多变数不知多少人还记得,疫情之初,我们是多么“幼稚”。
那时大部分人都以为疫情很快就会结束。
2020年1月爆发,我们以为2月就好了。
——大家都在家里闷一个月,怎么也把病毒闷死了。
但是没有。
然后我们又以为3月一定会好。
——春天来了,天气变暖,病毒怕热自己就会消失。
但是也没有。
事实是,直到两年后的3月,我们还在辛苦抗疫,而且 ...
C++ Learning
第二章 C++的学习为查看输出,必须在程序的最后加上一些代码:
12cin.get();//读取下一次键击,因此上述语句让程序等待,直到按下了Enter键
C语言输入和输出如果已经使用过C语言进行编程,则看到cout函数(而不是printf()函数)时可能会诧异。事实上C++能够使用printf()、scanf()和其他所有标准C输入和输出函数,只需要包含常规C语言的stdio.h文件。使用C++的输入工具,它们在C版本的基础上作出了很多改进。
1234567注释,由前缀//标识预处理器编译指令#include函数头:int main()编译指令 using namespace 函数体,用{和}括起使用C++的cout工具显示消息的语句结束main()函数的return语句。
头文件命令的约定
头文件类型
约定
示例
说明
C++旧式风格
以.h结尾
iostream.h
C++程序可以使用
C旧式风格
以.h结尾
math.h
C、C++程序都可以使用
C++新式风格
没有扩展名
iostream
C++程序可以使用,使用namespace ...
Qt 5 模板库、工具类及控件
Qt 5 模板库、工具类及控件2.1 字符串类C++提供了两种字符串,一种是C语言风格的以“\0”字符结尾的字符数组,另一种是字符串类String。
而Qt字符串类QString功能更强大。
QString类提供了丰富的操作、查询和转换等函数。
该类还进行了使用隐式共享(implicit sharing)、高效的内存分配策略
2.1.1 操作字符串
二元的“+”操作符用于组合两个字符串,并提供了一个“+=”操作符用于将一个字符串追加到另一个字符串的末尾,例如:
1234QStirng str1 = "Welcome";str1 = str1 + "to you!"; // str1 = "Welcome to you!"QString str2 = "Hello, ";str+="World! "; //str2 = "Hello,World!"
QString::append()函数具有与“+=”操作符同样的功能,实现在字符串末尾追加另一 ...
Coding
SubsequenceThere is a sequence of integers. Your task is to find the longest subsequence that satisfies the following condition: the difference between the maximum element and the minimum element of the subsequence is no smaller than m and no larger than k.
输入描述:12345There are multiple test cases. For each test case, the first line has three integers, n, m and k. n is the length of the sequence and is in the range [1, 100000]. m and k are in the range [0, 1000000]. The second line has n in ...
Shell 脚本语言
Shell 脚本语言
Shell简介1)Shell在计算机语言中,Shell是指一种命令行解释器,是为用户和操作系统之间通信提供的一种接口它接受来自用户输入的命令,并将其转换为一系列的系统调用送到内核执行,并将结果输出给用户。
目前RedHat和CentOS发行版中默认安装了多种Shell,可以使用如下命令来确认系统中可用的Shell是什么版本:
1234567[root@localhost ~] # cat /etc/Shells/bin/sh #Bourne Shell /bin/bash #Bourne again Shell /sbin/nologin # 非登录Shell /bin/tcsh #tC Shell /bin/csh #C Shell /bin/ksh #Korn Shell
目前众多的Linux系统默认采用Bash Shell
2)Bourne Shell是第一个重要的Shell,发布于1977年,作为UNIX 7的默认Shell,在系统中的位置是/bin/sh。目前大多数的UNIX和Linux系统还保留着这个/bin/ ...
Linux 系统命令
文件相关操作
创建文件: touch
1touch test.txt
删除文件:rm
1rm test.txt
移动或重命名文件:mv
移动文件到mnt下
1mv test.txt /mnt/
重命名文件
1mv test.txt test.doc
移动文件的同时重命名文件
12mv test.doc /tmp/test.txt//将test.doc移动到tmp文件目录下,同时重命名test.txt
查看文件:cat
显示文件内容
1cat install.log
加参数 -n 可以显示每行的行号
1cat -n install.log
查看头文件:head
有时候文件非常大,使用cat命令显示出来的内容太多,而我们并不想查看所有内容,只想看看文件开始部分的内容,这时候就可以使用head命令。默 认情况下,head将显示该文件前10行的内容。
1head install.log
1head -n 20 install.log //指定显示的行数
查看文件尾:tail
tail命令与head命令非常类似。当文件很大时, 可以使用该命令 ...
