函数错误码。
应用编程参考图书
| 书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
|---|---|---|---|---|---|
| UNIX环境高级编程 第3版 | 9787115516756 | [美]W.理查德·史蒂文斯 | 人民邮电出版社 | 2019年10月 | P |
| UNIX编程艺术 | 9787121176654 | [美]埃瑞克.S.理曼德 | 电子工业出版社 | 2021年02月 | |
| Linux高性能服务器编程 | 9787111425199 | 游双 | 机械工业出版社 | 2013年06月 | P |
Shell编程中常用的文件描述符有3个:
0:stdin,标准输入,默认指的是键盘输入
1:stdout,标准输出,默认指的是屏幕输出
2:stderr,标准错误输出,默认值得是屏幕输出
重定向简单例子
命令举例 含义
cmd > file 把 stdout 重定向到 file 文件中
cmd >> file 把 stdout 重定向到 file 文件中(追加)
cmd 1> fiel 把 stdout 重定向到 file 文件中
cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中
cmd 2> file 把 stderr 重定向到 file 文件中
cmd 2>> file 把 stderr 重定向到 file 文件中(追加)
cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中(追加)
cmd < file >file2 cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout
cat <>file 以读写的方式打开 file
cmd < file cmd 命令以 file 文件作为 stdin
cmd << delimiter Here document 从 stdin 中读入,直至遇到 delimiter 分界符
SHELL读取文件的方法
1 | //使用read命令读取一行数据 |
1
2
3
4
5#使用read命令读取一行数据
cat datafile.txt | while read myline
do
echo "LINE:"$myline
done
1
2
3
4
5#读取一行数据
cat datafile.txt | while myline=$(line)
do
echo "LINE:"$myline
done
1
2
3
4
5#读取一行数据
while myline=$(line)
do
echo "LINE:"$myline
done < datafile.txt
1
2
3
4
5
6
7#使用read命令读取变量数据
cat datafile.txt | while read paraa parab parac
do
echo "PARAA:"$paraa
echo "PARAB:"$parab
echo "PARAC:"$parac
done
1
2
3
4
5
6
7#使用read命令读取变量数据
while read paraa parab parac
do
echo "PARAA:"$paraa
echo "PARAB:"$parab
echo "PARAC:"$parac
done < datafile.txt
0x01 Spring图书
| 书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
|---|---|---|---|---|---|
| Spring实战(第6版) | 9787115598691 | [美]克雷格·沃斯 | 人民邮电出版社 | 2022年12月 | W |
| 精通Spring4.x—企业应用开发实战 | 9787121304439 | 陈雄华 | 电子工业出版社 | 2017年01月 | |
| Spring响应式编程 | 9787115536716 | [乌克兰]奥莱·多库卡 | 人民邮电出版社 | 2020年04月 |
0x01 Java基础编程
| 书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
|---|---|---|---|---|---|
| Java核心技术 卷1:开发基础(原书第12版) | 9787111706410 | [美]凯·S.霍斯特曼 | 机械工业出版社 | 2022年06月 | Z |
| Java核心技术 卷2:高级特性(原书第12版) | 9787111719748 | [美]凯·S.霍斯特曼 | 机械工业出版社 | 2023年03月 | Z |
| Java实战 第2版 | 9787115521484 | [英]拉乌尔 | 人民邮电出版社 | 2019年12月 | W |
| Java8实战 | 9787115521484 | [英]拉乌尔 | 人民邮电出版社 | 2019年12月 | W |
| 剑指Java 核心原理与应用实践 | 9787121436642 | 尚硅谷教育 | 电子工业出版社 | 2022年06月 | W |
简单介绍STL对集合操作有标准的算法:
- 交集set_intersection
- 并集set_union
- 差集set_difference
- 对称差集set_symeetric_difference。
针对这里提及的四个集合运算必须特别注意:
- 1、第一个算法需保证第一集合和第二集合有序,并从小到大排序,内部使用默认“<”操作符比较元素大小;
- 2、第二个算法需保证第一集合和第二集合有序,排序方式参照Compare确定,内部使用Compare比较元素大小。
在C++11之前,要实现函数对象或者仿函数,主要参考《C++设计新思维》中的Loki库,它采用模板推导的方式来实现。虽然Loki可以模拟函数对象,但其代码看起来比较晦涩,使用又不方便。在C++11以后,开始原生支持函数对象,新标准中的用法简单清晰,所有的可调用对象有了统一的调用方式,极易上手。本文总结函数对象的各种使用方法。
std::function的定义
1 | #include <functional> |
类模板std::function是通用多态函数封装器。std::function的实例能存储、复制及调用任何可调用目标,包括函数、lambda表达式、bind表达式或其他函数对象,还有指向成员函数指针和指向数据成员指针。
存储的可调用对象被称为std::function的目标。若 std::function不含目标,则称它为空。调用空std::function的目标导致抛出std::bad_function_call异常。
本文记录现代C++使用到的图书以及相关网站。
0x01 相关网站
- C++ reference
https://en.cppreference.com/w
https://zh.cppreference.com/w
https://zh.cppreference.com/w/cpp/11
https://zh.cppreference.com/w/cpp/14
https://zh.cppreference.com/w/cpp/17
https://zh.cppreference.com/w/cpp/20
https://zh.cppreference.com/w/cpp/23
https://zh.cppreference.com/w/cpp/26
- Standard C++ Library reference
https://cplusplus.com/reference
隐式类型转换带来的问题
我们首先看下面的这个例子,它可编译也可执行,最终结果是“TDemo::print 55”。有理由推断,实例化一个对象时,编译器自动将55这个整数转换成了“class TDemo”。类TDemo定义了一个单参数构造函数,而C++标准中,“单参数构造函数,可以完成从形参到该类型的一个隐式转换”,所以编译器能够完成从int类型到TDemo的类型转换。
1 | #include <iostream> |
C++ Primer的强烈建议
强制类型转换关闭或挂起了正常的类型检查。强烈建议避免使用强制类型转换,不依赖类型转换也能写出很好的C++程序。
这个建议在如何看待 reinterpret_cast 的使用时非常重要。此类强制转换总是非常危险的。相似地,使用价格const_cast也总是预示着设计权限。设计合理的系统应不需要使用强制转换抛弃const特性。其他的强制转换,如static_cast和dynamic_cast,各有各的用途,但都不应频繁使用。每次使用强制转换前,程序员应该仔细考虑是否还有其他不同的方法可以达到同一目的。如果非强制转换不可,则应限制强制转换值的作用域,并且记录所有假定涉及的类型,这样能减少错误发生的机会。
基础图书
| 书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
|---|---|---|---|---|---|
| C++ Primer 中文版 第5版 | 9787121155352 | [美]李普曼 | 电子工业出版社 | 2013-09-01 | P |
| C++ Templates 第2版 中文版 | 9787115601513 | [美]范德沃德,约祖蒂斯 | 人民邮电出版社 | 2024-01-01 | |
| C++ Templates 第2版 英文版 | 9787121155352 | [美]范德沃德,约祖蒂斯 | 人民邮电出版社 | 2018-05-01 | P |
| C++ Templates 中文版 | 9787115479938 | [美]范德沃德,约祖蒂斯 | 人民邮电出版社 | 2013-04-01 | P |
| 深入应用C++11:代码优化与工程级应用 | 9787111500698 | 祁宇 | 机械工业出版社 | 2015-05-01 | P,JV |
| 深入理解C++11:C++ 11新特性解析与应用 | 9787111426608 | Michael Wong | 机械工业出版社 | 2013-06-01 | P,JV |
| 现代C++语言核心特性解析 | 9787115564177 | 谢丙堃 | 人民邮电出版社 | 2021-10-01 | P,JV |
| 学习C++20(中文版) | 9787302625438 | [美]Paul J. Deitel,[美]Harvey M. Deitel | 清华大学出版社 | 2023-05-01 | |
| 标准C++输入输出流与本地化 | 9787115090522 | 万东旭,陈冀康 | 人民邮电出版社 | 2001-04-01 | P |
| C++ Core Guidelines解析 | 9787302635772 | [德]赖纳·格林 | 清华大学出版社 | 2023-07-01 |
参考图书
| 书名 | ISBN | 作者 | 出版社 | 出版日期 | 备注 |
|---|---|---|---|---|---|
| C和指针 | 9787115522689 | [美]肯尼斯·里科 | 人民邮电出版社 | 2020-09-01 | P |
| C陷阱与缺陷 | 9787115521279 | [美]安德鲁·凯尼格 | 人民邮电出版社 | 2020-08-01 | P |
| C专家编程 | 9787115521323 | [美]彼得·范德林登 | 人民邮电出版社 | 2020-09-01 | P |
| C语言接口与实现 创建可重用软件的技术 | 9787115402523 | [美]戴维 R.汉森 | 人民邮电出版社 | 2022-07-01 |
VSCode是微软出品的编辑器,简单清凉、扩展丰富。vscode依赖扩展完成各种丰富的功能实现,像胶水一样将扩展整合起来。同时支持跨平台,可以在Windows、Linux以及Mac上使用。本文记录相关的使用方法。
Win11激活强制要求联网以及登录,在不设置的情况下,还不能跳过,如下方法教我们初装系统时跳过该两项设置。