TFLite: 包含的c/c++头文件

#include

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
 

#include

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;


#include

/** @file include/vector 可变长数组
 *  This is a Standard C++ Library header.
 */
 

#include

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; // 上次状态更改时间 
};

 

#include

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

#include


#include

此头文件原作为  存在于 C 标准库。

类型

va_list

保有 va_start 、 va_arg 、 va_end 和 va_copy 所需的信息 
(typedef)

va_start

令对可变函数参数的访问可行 
(宏函数)

va_arg

访问下一个可变函数参数 
(宏函数)

va_copy

(C++11)

制造可变函数参数的副本 
(宏函数)

va_end

结束可变参数函数的遍历 
(宏函数)

#include

此头文件原作为  存在于 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 类型对象的最小值 
(宏常量)

#include

此头文件原作为  存在于 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

移动一个缓冲区到另一个 
(函数)


#include

TFLite: 包含的c/c++头文件_第1张图片

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 pairs which have both types in common.

std::pair<_U1, _U2>

template struct 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()

 

#include

提供了 C++ 内存管理的工具,例如 std::unique_ptrstd::shared_ptrstd::weak_ptr

 #include

算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。注意范围定义为 [first, last) ,其中 last 指代要查询或修改的最后元素的后一个元素。

有制约算法

C++20 在命名空间 std::ranges 中提供大多数算法的有制约版本,能以 Iterator-Sentinel 对或单个 Range 参数指定范围,并且支持投影和指向成员指针可调用对象。另外更改了大多数算法的返回类型,以返回算法执行过程中计算的所有潜在有用信息。

std::vector v = {7, 1, 4, 0, -1};
std::ranges::sort(v); // 有制约算法

头文件  提供为简化常用算法操作的制约而设计的概念和工具模板集合。

      for (Subgraph& subgraph : *subgraphs_) {
        // Sort and uniquefy using standard library algorithms.
        auto uniquefy = [](std::vector* items) {
          std::sort(items->begin(), items->end()); //将区间按升序排序 
          auto last = std::unique(items->begin(), items->end()); //删除区间内连续重复的元素
          items->erase(last, items->end());
        };
        uniquefy(&subgraph.input_tensors);
        uniquefy(&subgraph.output_tensors);
      }

 #include

有关复数?

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;

#include

fcntl.h,是unix标准中通用的头文件,其中包含的相关函数有 open,fcntl,shutdown,unlink,fclose等

fcntl.h定义了很多宏和open,fcntl函数原型

 

#include

unistd.h 是 C 和 C++ 程序设计语言中提供对 POSIX 操作系统 API 的访问功能的標頭檔的名称。是UniStandard的缩写。该头文件由 POSIX.1 标准(单一UNIX规范的基础)提出,故所有遵循该标准的操作系统和编译器均应提供该头文件(如 Unix 的所有官方版本,包括 Mac OS X、Linux 等)。

对于类 Unix 系统,unistd.h 中所定义的接口通常都是大量针对系统调用的封装(英语:wrapper functions),如 forkpipe 以及各种 I/O 原语(readwriteclose 等等)。

 

#include

unordered_map 是关联容器,含有带唯一键的键-值 pair 。搜索、插入和元素移除拥有平均常数时间复杂度。

元素在内部不以任何特定顺序排序,而是组织进桶中。元素放进哪个桶完全依赖于其键的哈希。这允许对单独元素的快速访问,因为一旦计算哈希,则它准确指代元素所放进的桶。

std::unordered_map 满足容器 (Container) 、具分配器容器 (AllocatorAwareContainer) 、无序关联容器(UnorderedAssociativeContainer) 的要求。

  typedef std::pair BuiltinOperatorKey;
  typedef std::pair CustomOperatorKey;

  std::unordered_map                      op_resolver_hasher::OperatorKeyHasher >
      builtins_;
  std::unordered_map                      op_resolver_hasher::OperatorKeyHasher >
      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

返回匹配特定键的元素范围 
(公开成员函数)

 

#include

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;
}

#include

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 allocs_; 

#include

C语言的标准函数库中的头文件stdbool.h在C99中引入,包含四个用于布尔型的预定义宏。

IEEE 1003.1-2001标准中的宏定义包括:

  • bool,会扩展为_Bool
  • true,会扩展为1
  • false,会扩展为0
  • __bool_true_false_are_defined,会扩展为1

#include

stddef.h是C標準函数庫中的头文件,定义了若干常见的类型与宏。

类型

  • ptrdiff_t 有符号整数型
  • size_t 无符号整数型
  • wchar_t 16位或32位整数型

  • NULL 与实现相关的空指针的值
  • offsetof(type, member-designator) 结构体内成员的偏移量

#include

stdint.h是C標準函数庫中的头文件,定义了具有特定位宽的整型,以及对应的宏;还列出了在其他标准头文件中定义的整型的极限。

#include

cmath是c++语言中的标准库头文件。 其中的“c” 表示其中的函数是来自C标准库,“math”表示为数学常用库函数。 以及:log,log10;sin;cos;tan等函数。

你可能感兴趣的:(人工智能)