- 博客(84)
- 资源 (3)
- 收藏
- 关注
原创 【Linux】常用命令和技巧
man——查看命令使用方法用法:man 命令名称 echo——打印字符串或系统变量值用法:echo 字符串或echo $系统变量 date——格式化打印系统时间用法:date “+%H-%M-%S” reboot——重启用法:reboot wget——下载网络文件用法实例:wget -O /home/lx www.baidu.com elinks——纯文本浏览器用法
2017-06-30 21:39:18 537
原创 go语言nil,new,make介绍
nilnil与其他语言的null不同,nil一般作为指针,切片,map,channel,函数和接口的零值。nil标识符是不能比较的。nil没有默认类型,不能使用" %T "打印其类型。不同类型的nil占用的内存大小是不一样的,而且和编译器和架构有关。var p *intfmt.Printf("sizeof %v:%d\n", p, unsafe.Sizeof(p)) // 8var s []intfmt.Printf("sizeof %v:%d\n", s, unsafe.Sizeof(
2022-02-25 16:19:43 357
原创 go语言map操作
map是存储键值对的数据结构,使用哈希表实现,map是无序的。map自动初始化值为nil,可以自动增长。和切片一样,map也是一种引用类型。map是跨线程访问是不安全的,可以使用sync包中的Map来实现线程安全。map的创建方法一:直接定义使用map关键字声明map,后面跟[key类型],value类型var name map[keyType]valueTypevar users = map[int]string{1: "小明", 2: "小张", 3: "小红"}fmt.Prin.
2022-02-25 15:59:39 1714 1
原创 go语言指针、数组和切片
go语言指针被拆分成两个核心概念:指针类型和切片,他们分别对应变量和数组的引用。指针类型:指向变量在底层的内存,但是go语言的指针不允许偏移和运算。切片:是对数组一个连续片段的引用,切片底层数据结构都是数组,切片内部结构包括:地址、大小和容量。切片一般用于快速操作一块数据集合。变量参考前一篇文章:go语言变量与常量指针变量由内存地址,数据类型和值组成,指针即变量内存地址的别名,通过这个别名同样可以访问和修改变量的内存。go语言中指针类型只能操作单个变量(不像c语言中可以通过指针偏移操作一大
2022-02-25 12:20:10 1173
原创 go语言string操作
字符串类型string是一个不可变的字符序列,go从底层就采用UTF-8编码。字符串在内存中是以byte数组存储的,如果是非ASCII字符的其他长度字符(如中文),每个rune就占多个byte。字符串操作字符串定义//转义字符\n \r \t \u \U分别表示换行,回车,制表符,Unicode字符var str string = "测试转义字符: \t hello \u0067\U0000006F \n"//使用反引号来定义原生字符串,无需转义原样输出var str1 string =
2022-02-20 17:33:17 1914
原创 go语言变量与常量
变量是内存的别称——鲁迅基本类型go语言内置了如下这些基本数据类型- bool //初始值为false- string //初始值为""- int , int8, int16, int32, int64 //初始值为0,其中int长度跟随系统- uint, uint8, uint16, uint32, uint64, uintptr //初始值为0,uintptr初始值为nil(本质也是0吧),uint和uintptr长度跟随系统,- byte //初始值0,uint8的别称- run
2022-02-20 00:29:01 633
原创 go开发环境搭建
golang开发环境搭建非常简单,分为如下两步,两个步骤在Windows、MacOS、Linux上都大致相同:1.下载安装包,解压2.配置环境变量下面是详细步骤下载解压下载地址:https://go.dev/dl/有特性版本和稳定版本可以选择,根据自己的喜好和平台下载即可。下载完成后,解压,解压路径没有要求,下面是我自己的解压路径:Windows: d:/goLinux和MacOS: /usr/local/go环境配置环境变量也很简单,配置四个环境变量即可GOROOTgo
2022-02-19 20:52:06 1570
原创 【贰】第一个flutter程序
打开虚拟机在创建之前,可以先打开一个android虚拟机,也可以用USB将手机连接到电脑,打开卡发着模式的USB调试,用于调试创建第一个flutter程序打开vscode利用快捷键ctrl+shift+p打开命令行键入flutter,选择new project键入项目名称选择项目目录flutter会生成一个默认的项目框架,以及计数器实例,等加载完成,趁热直接点击F5进行调试,...
2019-09-18 22:28:50 374
原创 【壹】flutter开发环境
只有windows没有mac没有iphone,写点android app权当兴趣,我是C++程序员对vscode情有独钟,所以只配置windows下的vscode和android开发环境,android studio等其他开发环境请自行搜索。获取flutter SDK两种方法,官网下载,github拉取,放到一个合适的目录,不要放在需要管理员权限的目录如c:paragram files等官...
2019-09-18 22:27:50 136
原创 随机数的产生——srand(time(0))的误用
rand()C语言中可以只用rand()函数来产生0~RAND_MAX之间的随机数,其中RAND_MAX的值与平台有关,至少为32767,这个函数包含在stdlib.h中。srand()有时候便于测试,我们需要每次重新运行程序,都产生相同的随机数,C语言提供了srand()函数来对随机数生成器进行初始化,也叫做为随机数生成器设置种子,在设置相同的种子之后,调用rand()来生成的随机数序列都...
2019-05-25 16:27:05 3944 2
原创 剑指offer【2】——拷贝构造函数的参数类型
1、问如下代码的运行结果是?A.编译错误,B.编译成功,运行时崩溃,C.运行正常,输出10class A{ private: int value; public: A(int n):value(n){} A(A other){this->value=other.value;} void print(){std::cout<<value&...
2018-08-04 00:02:22 212
原创 剑指offer【1】——C++类型转换关键字浅析,空类型sizeof
1、C++有哪四个类型转换的关键字?他们各有什么特点?分别在什么场景下使用? c语言的强制类型转换:可以对基本数据类型进行类型转换,窄数据类型向宽数据类型转换是安全的,宽数据类型向窄数据类型转换是不安全的,可能损失精度。格式是如下:TYPE1 a=(TYPE2) b;static_cast:除了可以实现C语言强制数据类型转换相同的基本数据类型的转换外,还可以实现对象类型的转换,其中转换的...
2018-07-25 23:32:48 204
原创 【c++】类型转换——隐式转换、C风格显式转换、static_cast,const_cast,dynamic_cast和reinterpret_cast
static_cast该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。 ②用于基本数据类型之间...
2018-03-22 09:18:02 317 2
原创 【data structure】各种数据结构的c/c++实现
queue 队列的c/c++实现 stack 栈的c/c++实现 vector 数组的c++实现 list 链表的c++实现
2018-03-09 13:37:58 1334
原创 【c++】查缺补漏
c++中new操作的返回值:new返回一个指针,如int *p=new int;返回一个指向int的指针,int *p=new int[10],返回一个指向含有10个int元素的数组的首地址。new失败的操作:在早期c++版本中,如果系统不能够满足用户new的内存需求,则继承c语言的处理方法,返回一个指向NULL的指针;后来c++的版本中,则是跑出bad_alloc异常,所以针...
2018-03-09 09:56:30 275
原创 c++100本书
100多本C/C++和计算机基础经典书籍推荐下载 1.计算机科学概论 计算机科学概论 2.计算机数学基础 高等数学 线性代数 概率论与数理统计 离散数学及其应用 离散数学教程(北大版) 什么是数学 具体数学:计算机科学基础 3.C语言 谭浩强C程序设计 C primer plus The C programming language C和指针 C专家教程 C陷阱与...
2018-03-07 13:32:11 273
转载 【c++】野指针
“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。 “野指针”的成因主要有两种:(1)指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。...
2018-03-06 10:55:23 858
原创 【编程思想】递归思想训练
递归的基本思想是把规模大的问题转化为规模小的相似的子问题来解决,通俗地说就是“大事化小,小事化了”,递归的数学模型是归纳法,运用列表来形容归纳法就是: 步进表达式:问题蜕变成子问题的表达式 结束条件:什么时候可以不再是用步进表达式 直接求解表达式:在结束条件下能够直接计算返回值的表达式 逻辑归纳项:适用于一切非适用于结束条件的子问题的处理,当然上面的步进表达式其实就是包
2018-01-25 09:26:39 546
原创 【c++】关键字
explicit阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。当类构造函数只有一个参数时应该申明为explicit,阻止构造时隐式转换发生。如:class Test1{public: Test1(int n) { num=n; }//普通构造函数private: int ...
2018-01-15 09:38:37 178
转载 【c++】lambda表达式
转载自:链接我是搞C++的一直都在提醒自己,我是搞C++的;但是当C++11出来这么长时间了,我却没有跟着队伍走,发现很对不起自己的身份,也还好,发现自己也有段时间没有写C++代码了。今天看到了C++中的Lambda表达式,虽然用过C#的,但是C++的,一直没有用,也不知道怎么用,就可怜的连Lambda语法都看不懂。好了,这里就对C++中的Lambda进行一个简单的总结,就算是对自己的一个交代,我是
2018-01-11 11:29:47 231
原创 【linux】clion的cmakefile文件的一些写法实例
可以看一下这个# Initial CMake and project setup## Required CMake version (ExternalProject)CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)INCLUDE(ExternalProject)SET(PROJECT_NAME Khronos)PROJECT(${PROJEC
2017-12-23 16:25:58 1794
原创 【设计模式】工厂模式——创建对象的最佳方式
工厂模式中,创建对象时不会对客户端暴露创建逻辑,通过使用一个共同的接口来指向新创建的对象。简单工厂模式运用面向对象的继承和多态,将对象的创建放到工厂中,根据需求(用参数表明),来判断需要什么类型的对象,就创建什么类型的对象。一个简单的例子://simpleFactory.h#include <iostream>#include <string>//基类class animal{public:
2017-10-12 12:32:01 608
原创 【Algorithm】c++实现各种排序算法
#include <iostream>#define SIZE 10using namespace std;void print(int arr[], int n){ for (int i = 0; i < n; i++) cout << arr[i] << ' '; cout << endl << endl;}/*冒泡排序:持续比较相邻两个数最多n趟最好
2017-09-28 18:09:47 521
原创 【c++】用c++实现简单的进程调度程序
模拟linux实现了基本的资源仓库、进程池、资源申请、资源释放、创建进程、进程调度(多级反馈调度)、进程撤销、时间中断和一个简单的脚本。一个课程实验,很多bug、不完善,只是为了模拟进程调度算法,所以不是真实的申请资源(资源也是模拟的),甚至可以说是just for fun吧,将就着看。个人觉得,这种程序自己写一遍可以加深印象,但不要强求完善,这不是一朝一夕的事,也没有必要,要知道linux的进程...
2017-09-20 16:59:55 2859
原创 【data structure】线性表简单模板c++实现
#ifndef LINEARLIST_H#define LINEARLIST_H#include <iostream>template <class T>class linearList{public: //构造函数 linearList(){ length = 0; } linearList(int n, T ele){ leng
2017-09-19 11:42:50 403
原创 【c++】use vector
#include <iostream>#include <vector>#include <string>using namespace std;int main(){ //vector的定义和初始化 cout << "\n定义和初始化vector:--------->" << endl; vector<int> v1;//定义一个空的vector,执行默认初始化
2017-09-15 10:25:13 340
原创 【c++】stl顺序容器
STL提供了以下几种顺序容器: 除array外,其他顺序容器都提供高效灵活的自动内存管理。 forward_list和array是c++11新增的容器类型,array比内置的数组类型更安全和方便。 除非有更好的选择,否则vector将是你最好的选择(c++ primer)。顺序容器类型别名:构造函数:
2017-09-08 15:06:06 281
原创 【Linux】文本处理、关键字截取
cutcut命令可以将一行文字按照指定字符切分成多段并取出某一段,或者直接指定要取出的字符位置。 格式:cut -d '指定字符' -f数字 //切分并取出指定列cut -c 区间 //取出指定字符位置的字符串,区间用-表示,如2-4,8-,-9等实例: 1 从登录信息中取出登录名那一列。[root@localhost nta]# last | cut -d ' ' -f1ro
2017-08-31 14:50:47 8092 4
原创 【Linux】linux定时任务crontab
crontab命令的功能是在一定的时间间隔调度一些命令的执行。它的配置文件是/etc/crontab。vim /etc/crontab/etc/crontab中每行指定一个定时任务,其描述格式如下:minute hour day month dayofweek commandminute - 从0到59的整数 hour - 从0到23的整数 day - 从1到31的整数 (必须是指定月份的有效
2017-08-30 16:12:45 255
转载 【Linux】使用ftp传输文件
Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件、修改远程主机的文件权限等。语法 ftp(选项)(参数) 选项 -d:详细显示指令执行过程,便于排错或分析程序执行的情况; -i:关闭互动模式,不询问任何问题; -g:关闭本地主机文件名称支持特殊字符的扩充特性; -n:不使用自动登录; -v:显示指令执行过程。 参数 主机:指定要连接的FTP服务
2017-08-29 10:17:29 1756
转载 【Linux】CentOS7.0中禁用IPV6
你可以用两个方法做到这个:方法 1编辑文件/etc/sysctl.conf,vi /etc/sysctl.conf添加下面的行:net.ipv6.conf.all.disable_ipv6 =1net.ipv6.conf.default.disable_ipv6 =1如果你想要为特定的网卡禁止IPv6,比如,对于enp0s3,添加下面的行。net.ipv6.conf.enp0s3.disable_
2017-08-24 14:31:51 640
原创 【Data Structure】概述和线性表
更新中…….data structure = data + logical structure + storage structure + operation.逻辑结构:(logical structure),通常包括四类:集合、线性、树、图。 集合:多个元素属于同一集合。 线性:元素之间是一对一关系。 树:元素之间是一对多关系。 图:元素之间是多对多关系。存储结构:(storage str
2017-08-22 22:33:41 409
原创 【computer network】运输层:TCP可靠数据传输原理、UDP
更新中……转载请说明出处:http://blog.csdn.net/guwuchangtian/article/details/77481224概述运输层:为运行在不同主机上的进程之间提供逻辑通信功能。与网络层的关系:运输层是为进程提供通信,网络层是为主机提供逻辑通信。所以运输层运行于主机上为应用程序进程提供服务,而网络层则运行于整个网络,为所有主机(也可以说是传输层)提供服务...
2017-08-22 15:50:18 610
原创 【c++】sizeof(a struct)
空结构体的大小为多少?int main(){ typedef struct{ }s; cout<<sizeof(s)<<endl; return 0;}输出为: 1 说明:本该是0,但是我们在什么结构实体的时候它必须在内存中占用一定空间,否则无法使用,至于具体占用多少,由编译器决定,在vs中为1(来自《剑指offer》)结...
2017-08-17 18:16:38 451
原创 【Linux】CentOS7.0打开端口
CemtOS7.0之后使用firewalld替代了iptables。 打开端口命令:firewall-cmd --zone=puble --add-poet=80/tcp --permannent重启firewall:firewall-cmd --reload查看端口是否打开:firewall-cmd --query-port=80/tcp
2017-08-14 14:37:17 1013
原创 【computer network】应用层:HTTP/FTP/SMTP/POP3/IMAP/DNS
应用程序体系结构:C-S结构:即客户端-服务器结构(client-server architecture),由一个总是打开的服务器和任意多个提交请求的客户端组成,通常服务器由多个数据中心组成,一个数据中心可能由数十万台服务器(硬件)组成,所以那些大公司要新建一个服务器就会去找一个山清水秀的地方,重点是要有河,先建一座电站,再在旁边建数据中心,因为很耗电。P2P结构:(P2P architecture
2017-08-14 11:51:39 7218
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人