cstdio是将stdio.h的内容用C++头文件的形式表示出来。stdio.h是C标准函数库中的头文件,即:standard buffered input&output。 提供基本的文字的输入输出流操作(包括屏幕和文件等)。 由于C语言并没有提供专用于文字输入输出的关键字,所以该库是最普遍的C语言程序加载库。
在C语言中,stdio.h 头文件是主要的。而在后来的C++语言中,C只是C++的一个子集,且C++中,已不推荐再用C的类库,但为了对已有代码的保护,还是对原来的头文件支持。
cstdio是c++从C的stdio.h继承来的,在前面加C同时不要H后缀,在C++环境当然是选用前者,两者内容都一样,只是cstdio头文件中定义的名字被定义在命名空间std中。使用后者就会带来额外的负担,需要区分哪些是标准库明是C++特有的,哪些是继承过来的。所以在C++中要尽量避免C风格的出现。
cstdio文件的内容是这样的:
#if
#include
namespace std {
using ::fclose;
using ::feof;
using ::ferror;
using ::fflush;
using ::fgetc;
using ::fgetpos;
using ::fgets;
using ::FILE;
using ::clearerr;
using ::fopen;
using ::fprintf;
using ::fpos_t;
using ::fputc;
using ::fputs;
using ::fread;
using ::freopen;
using ::fscanf;
using ::fseek;
using ::fsetpos;
using ::ftell;
using ::fwrite;
using ::getc;
using ::getchar;
using ::gets;
using ::perror;
using ::putc;
using ::putchar;
using ::printf;
using ::puts;
using ::remove;
using ::rename;
using ::rewind;
using ::scanf;
using ::setbuf;
using ::setvbuf;
using ::size_t;
using ::sprintf;
using ::sscanf;
using ::tmpfile;
using ::tmpnam;
using ::ungetc;
using ::vfprintf;
using ::vprintf;
using ::vsprintf;
}
#endif
stdlib.h是C标准函数库的头文件,声明了数值与字符串转换函数, 伪随机数生成函数, 动态内存分配函数, 进程控制函数等公共函数。 C++程序应调用等价的cstdlib
头文件
using ::atof;
using ::atoi;
using ::atol;
using ::bsearch;
using ::calloc;
using ::div;
using ::exit;
using ::free;
using ::getenv;
using ::labs;
using ::ldiv;
using ::malloc;
/** @file include/vector 可变长数组
* This is a Standard C++ Library header.
*/
stat函数可以返回一个结构,里面包括文件的全部属性
struct stat {
dev_t st_dev; // 文件所在设备ID
ino_t st_ino; // 结点(inode)编号
mode_t st_mode; // 保护模式
nlink_t st_nlink; // 硬链接个数
uid_t st_uid; // 所有者用户ID
gid_t st_gid; // 所有者组ID
dev_t st_rdev; // 设备ID(如果是特殊文件)
off_t ** st_size;** // 总体尺寸,以字节为单位
blksize_t st_blksize; // 文件系统 I/O 块大小
blkcnt_t st_blocks; // 已分配 512B 块个数
time_t st_atime; // 上次访问时间
time_t st_mtime; // 上次更新时间
time_t st_ctime; // 上次状态更改时间
};
sys/types.h中文名称为基本系统数据类型
是Unix/Linux系统的基本系统数据类型的头文件,含有size_t,time_t,pid_t等类型。linux编程中经常用到的头文件。
caddr_t 核心地址。
clock_t 表示系统时间(以时钟周期为单位)。
comp_t 压缩的时钟滴答。
dev_t 用于设备号。
fd_set 文件描述集。ca
fpos_t 文件位置。
gid_t 数组值ID。
ino_t i节点编号。
off_t 用于文件大小和偏移量。
mode_t 文件类型,文件创建模式。
pid_t 进程ID和进程组ID
ptrdiff_t 是一种带符号整型,用于对两个指针执行减法运算后所得的结果。
rlim_t 资源限制;
size_t 反映内存中对象的大小(以字节为单位)。
ssize_t 供返回字节计数或错误提示的函数使用。
time_t 以秒为单位计时。
uid_t 数值用户ID。
wchar_t 能表示所有不同的字符码
#include
此头文件原作为
存在于 C 标准库。
类型 |
|
va_list |
保有 va_start 、 va_arg 、 va_end 和 va_copy 所需的信息 (typedef) |
宏 |
|
va_start |
令对可变函数参数的访问可行 (宏函数) |
va_arg |
访问下一个可变函数参数 (宏函数) |
va_copy (C++11) |
制造可变函数参数的副本 (宏函数) |
va_end |
结束可变参数函数的遍历 (宏函数) |
此头文件原作为
存在于 C 标准库。
此头文件是类型支持库的一部分,提供定宽整数类型和部分 C 数值极限接口。
定义于头文件 |
|
int8_tint16_tint32_tint64_t (可选) |
分别为宽度恰为 8 、 16 、 32 和 64 位的有符号整数类型 无填充位并对负值使用补码 (仅若实现支持该类型才提供) (typedef) |
int_fast8_tint_fast16_tint_fast32_tint_fast64_t |
分别为宽度至少有 8 、 16 、 32 和 64 位的最快的有符号整数类型 (typedef) |
int_least8_tint_least16_tint_least32_tint_least64_t |
分别为宽度至少有 8 、 16 、 32 和 64 位的最小的有符号整数类型 (typedef) |
intmax_t |
最大宽度的有符号整数类型 (typedef) |
intptr_t (可选) |
足以保有指针的有符号整数类型 (typedef) |
uint8_tuint16_tuint32_tuint64_t (可选) |
宽度恰为 8 、 16 、 32 和 64 位的无符号整数类型 (仅若实现支持该类型才提供) (typedef) |
uint_fast8_tuint_fast16_tuint_fast32_tuint_fast64_t |
分别为宽度至少有 8 、 16 、 32 和 64 位的最快无符号整数类型 (typedef) |
uint_least8_tuint_least16_tuint_least32_tuint_least64_t |
分别为宽度至少有 8 、 16 、 32 和 64 位的最小无符号整数类型 (typedef) |
uintmax_t |
最大宽度的无符号整数类型 (typedef) |
uintptr_t (可选) |
足以保有指针的无符号整数类型 (typedef) |
定义于头文件 |
|
有符号整数:最小值 |
|
INT8_MININT16_MININT32_MININT64_MIN |
int8_t 、 int16_t 、 int32_t 、 int64_t 类型对象的最小值 (宏常量) |
此头文件原作为
存在于 C 标准库。
此头文件用于 C 风格空终止字节字符串。
NULL |
实现定义的空指针常量 (宏常量) |
size_t |
sizeof 运算符返回的无符号整数类型 (typedef) |
字符串操纵 |
|
strcpy |
复制一个字符串给另一个 (函数) |
strncpy |
复制来自一个字符串的一定量字符给另一个 (函数) |
strcat |
连接二个字符串 (函数) |
strncat |
连接二个字符串的一定量字符 (函数) |
strxfrm |
变换字符串,使得 strcmp 会返回与 strcoll 相同的结果 (函数) |
字符串检验 |
|
strlen |
返回给定字符串的长度 (函数) |
strcmp |
比较二个字符串 (函数) |
strncmp |
比较二个字符串的一定量字符 (函数) |
strcoll |
按照当前本地环境比较二个字符串 (函数) |
strchr |
寻找字符的首次出现 (函数) |
strrchr |
寻找字符的最后出现 (函数) |
strspn |
返回仅由在另一字节字符串中找到的字符组成的最大起始段长度 (函数) |
strcspn |
返回仅由另一字节字符串中找不到的字符组成的最大起始段的长度 (函数) |
strpbrk |
寻找任何来自分隔符集合的字符的首个位置 (函数) |
strstr |
寻找字符子串的首次出现 (函数) |
strtok |
寻找字节字符串中的下个记号 (函数) |
字符数组操纵 |
|
memchr |
在数组中搜索字符的首次出现 (函数) |
memcmp |
比较二个缓冲区 (函数) |
memset |
以字符填充缓冲区 (函数) |
memcpy |
复制一个缓冲区到另一个 (函数) |
memmove |
移动一个缓冲区到另一个 (函数) |
utility
is a header file in the C++ Standard Library. This file has two key components:
rel_ops
, a namespace containing set of templates which define default behavior for the relational operators!=
, >
, <=
, and >=
between objects of the same type, based on user-defined operators ==
and <
.pair
, a container template which holds two member objects (first
and second
) of arbitrary type(s). Additionally, the header defines default relational operators for pair
s which have both types in common.std::pair<_U1, _U2>
templatestruct pair { typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair(): first(), second() { } pair(const _T1& __a, const _T2& __b): first(__a), second(__b) { } template pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) { } };
make_pair()
提供了 C++ 内存管理的工具,例如 std::unique_ptr
,std::shared_ptr
,std::weak_ptr
。
算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。注意范围定义为 [first, last)
,其中 last
指代要查询或修改的最后元素的后一个元素。
有制约算法 C++20 在命名空间 std::vector 头文件 for (Subgraph& subgraph : *subgraphs_) { |
有关复数?
template <>
constexpr TfLiteType typeToTfLiteType
return kTfLiteComplex64;
}
// Single-precision complex data type compatible with the C99 definition.
typedef struct {
float re, im; // real and imaginary parts, respectively.
} TfLiteComplex64;
fcntl.h,是unix标准中通用的头文件,其中包含的相关函数有 open,fcntl,shutdown,unlink,fclose等!
fcntl.h定义了很多宏和open,fcntl函数原型
unistd.h
是 C 和 C++ 程序设计语言中提供对 POSIX 操作系统 API 的访问功能的標頭檔的名称。是Unix Standard的缩写。该头文件由 POSIX.1 标准(单一UNIX规范的基础)提出,故所有遵循该标准的操作系统和编译器均应提供该头文件(如 Unix 的所有官方版本,包括 Mac OS X、Linux 等)。
对于类 Unix 系统,unistd.h
中所定义的接口通常都是大量针对系统调用的封装(英语:wrapper functions),如 fork
、pipe
以及各种 I/O 原语(read
、write
、close
等等)。
unordered_map 是关联容器,含有带唯一键的键-值 pair 。搜索、插入和元素移除拥有平均常数时间复杂度。
元素在内部不以任何特定顺序排序,而是组织进桶中。元素放进哪个桶完全依赖于其键的哈希。这允许对单独元素的快速访问,因为一旦计算哈希,则它准确指代元素所放进的桶。
std::unordered_map
满足容器 (Container) 、具分配器容器 (AllocatorAwareContainer) 、无序关联容器(UnorderedAssociativeContainer) 的要求。
typedef std::pair
typedef std::pair
std::unordered_map
builtins_;
std::unordered_map
custom_ops_;
./mutable_op_resolver.cc:22: auto it = builtins_.find(std::make_pair(op, version));
./mutable_op_resolver.cc:41: builtins_[op_key] = new_registration;
修改器 |
|
clear |
清除内容 (公开成员函数) |
insert |
插入元素或结点 (C++17 起) (公开成员函数) |
insert_or_assign (C++17) |
插入元素,或若关键已存在则赋值给当前元素 (公开成员函数) |
emplace |
原位构造元素 (公开成员函数) |
emplace_hint |
使用提示原位构造元素 (公开成员函数) |
try_emplace (C++17) |
若键不存在则原位插入,若键存在则不做任何事 (公开成员函数) |
erase |
擦除元素 (公开成员函数) |
swap |
交换内容 (公开成员函数) |
extract (C++17) |
从另一容器释出结点 (公开成员函数) |
merge (C++17) |
从另一容器接合结点 (公开成员函数) |
查找 |
|
at |
访问指定的元素,同时进行越界检查 (公开成员函数) |
operator[] |
访问或插入指定的元素 (公开成员函数) |
count |
返回匹配特定键的元素数量 (公开成员函数) |
find |
寻找带有特定键的元素 (公开成员函数) |
contains (C++20) |
检查容器是否含有带特定关键的元素 (公开成员函数) |
equal_range |
返回匹配特定键的元素范围 (公开成员函数) |
sys/mman.h - memory management declarations
int mlock(const void *, size_t);
int mlockall(int);
void *mmap(void *, size_t, int, int, int, off_t);
int mprotect(void *, size_t, int);
int msync(void *, size_t, int);
int munlock(const void *, size_t);
int munlockall(void);
int munmap(void *, size_t);
int shm_open(const char *, int, mode_t);
int shm_unlink(const char *);
#include
numeric_limits::max () 是函数,返回编译器允许的 double 型数 最大值。 类似的 numeric_limits ::max () 返回 编译器允许的 int 型数 最大值。 需包含头文件 #include limits是STL提供的头文件(包含numeric_limits模板类),limit.h是C语言提供的头文件(包含一些宏定义) 例子: #include #include using namespace std; main(){ cout << std::numeric_limits ::max () << endl; cout << std::numeric_limits ::max () << endl; }
std::list
是支持常数时间从容器任何位置插入和移除元素的容器。不支持快速随机访问。它通常实现为双向链表。与 std::forward_list 相比,此容器提供双向迭代但在空间上效率稍低。
在 list 内或在数个 list 间添加、移除和移动元素不会非法化迭代器或引用。迭代器仅在对应元素被删除时非法化。
std::list
满足容器 (Container) 、具分配器容器 (AllocatorAwareContainer) 、顺序容器 (SequenceContainer) 及可逆容器(ReversibleContainer) 的要求。
// TODO(maciekc): add list iterator to the ArenaAlloc to lookup quickly.
std::list
C语言的标准函数库中的头文件stdbool.h在C99中引入,包含四个用于布尔型的预定义宏。
IEEE 1003.1-2001标准中的宏定义包括:
bool
,会扩展为_Bool
true
,会扩展为1
false
,会扩展为0
__bool_true_false_are_defined
,会扩展为1stddef.h
是C標準函数庫中的头文件,定义了若干常见的类型与宏。
stdint.h
是C標準函数庫中的头文件,定义了具有特定位宽的整型,以及对应的宏;还列出了在其他标准头文件中定义的整型的极限。
cmath是c++语言中的标准库头文件。 其中的“c” 表示其中的函数是来自C标准库,“math”表示为数学常用库函数。 以及:log,log10;sin;cos;tan等函数。