自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dontla的博客

人生苦短

  • 博客(2467)
  • 资源 (11)
  • 收藏
  • 关注

原创 C++多态虚析构(Virtual Destructor)和纯虚析构(Pure Virtual Destructor)有什么区别(纯虚析构强制派生类提供自己的析构实现)

虚析构函数用于处理多态对象的析构。当一个类被用作基类,并且该类的析构函数被声明为虚函数时,它允许通过基类指针删除一个派生类对象时,能够正确调用派生类和基类的析构函数。这是因为在派生类对象通过基类指针删除时,如果基类的析构函数不是虚函数,只会调用基类的析构函数而不会调用派生类的析构函数,这可能导致资源泄漏或不正确的对象清理。纯虚析构函数是一个纯虚函数,且被声明为虚析构函数。通常情况下,只有在基类中存在其他纯虚函数时,才会使用纯虚析构函数。在C++中,虚析构函数和纯虚析构函数是两个不同的概念。

2023-06-08 15:35:44 3

原创 C++用指针的方法实现多态,delete的时候只调用基类的析构函数,不调用子类的怎么办?(给基类(父类)的析构函数声明virtual)

当我们使用delete删除一个指向子类对象的基类指针时,如果基类的析构函数不是虚函数,那么只会调用基类的析构函数,而不会调用子类的析构函数,这样就会导致子类对象的资源没有被释放,从而引发内存泄漏等问题。为了解决这个问题,我们需要将基类的析构函数声明为虚函数,这样在使用delete删除一个指向子类对象的基类指针时,就会先调用子类的析构函数,再调用基类的析构函数,从而确保子类对象的资源被正确释放。在使用指针实现多态时,我们通常会使用基类指针指向子类对象,然后通过基类指针调用虚函数实现多态。

2023-06-07 23:28:00 14

转载 C++静态多态和动态多态(静态联编:函数地址早绑定、动态联编:函数地址晚绑定)

如果没有使用虚函数,即没有利用 C++ 多态性,则利用基类指针调用相应函数的时候,将总被限制在基类函数本身,而无法调用到子类中被重写的函数。当我们使用delete删除一个指向子类对象的基类指针时,如果基类的析构函数不是虚函数,那么只会调用基类的析构函数,而不会调用子类的析构函数,这样就会导致子类对象的资源没有被释放,从而引发内存泄漏等问题。动态多态最常见的用法就是声明基类的指针,利用该指针指向任意一个子类对象,调用相应的虚函数,可以根据指向的子类的不同而调用不同的方法。而多态的目的则是为了。

2023-06-07 23:09:29 14

原创 C++make_shared()函数模板(创建一个shared_ptr对象并在堆上初始化所指向的对象)

make_shared函数模板还会将所创建的对象和引用计数对象放在同一块内存中,这样可以减少内存分配的次数,提高程序的效率。在这个例子中,我们使用make_shared函数模板创建了一个MyClass对象,并将其赋值给一个shared_ptr对象ptr。make_shared函数模板的返回值是一个shared_ptr对象,它指向所创建的对象。在C++中,make_shared是一个函数模板,用于创建一个shared_ptr对象并初始化它所指向的对象。

2023-06-07 16:20:32 16

原创 C++重写与重载区别(重载与重写)重写(override)、重载(overload)虚函数virtual,多态

如果基类中的函数没有被声明为虚函数,那么子类中的同名函数只是一个新的函数,与基类中的函数没有任何关系。例如,下面的代码中,基类中的func()函数没有被声明为虚函数,子类中的func()函数只是一个新的函数,与基类中的func()public :} };// 输出 Base::func() q -> func();// 输出 Derived::func() delete p;delete q;Derived dd;

2023-06-07 14:48:46 8

原创 C++基类指针或引用指向或引用派生类对象(实现动态多态四种手段)父类指针访问子类成员变量(需要dynamic_cast)

因此,p1->speak()会调用Cat类中的speak函数,输出"Cat speaks",p2->speak()会调用Dog类中的speak函数,输出"Dog speaks"。在main函数中,我们使用Animal指针p指向Cat对象,然后使用dynamic_cast运算符将p转换为Cat指针q,从而访问Cat类中的name成员变量。如果我们不使用父类指针指向子类对象,而是直接使用Cat和Dog对象,那么我们就需要分别调用它们的speak函数,这样会导致代码的重复和冗余,不利于代码的扩展和维护。

2023-06-06 23:46:48 137

原创 C/C++省略函数形式参数名(省略形参名)(声明时C/C++都能省略形参名;定义时如果不使用参数,只有C++能省略形参名)

— 并且在C++中,如果给不使用的形式参数命名,可能会得到一个警告。当需要使用形式参数的时候,显然,必须给形式参数命名。无论是C还是在C++,都可以省略形式参数名。—— C++可以省略形式参数名,如果不使用。—— C不能省略形式参数名, 即使不使用。我的是C++11,编译时貌似没有警告。但是,通常都不建议省略形式参数名。C与C++的细微区别。

2023-06-05 14:06:56 18 1

原创 nlohmann::json用json[“xxx“]方式无法抛出异常,建议用json.at(“xxx“)(json.at())

nlohmann::json用json[“xxx”]方式无法抛出异常,建议用json.at(“xxx”)

2023-06-05 11:23:22 14

原创 nlohmann::json对于缺少字段缺少、空值null的特殊处理(json::at()、json::value()、json::get<>()、json::get_or<>())

有时候我们会遇到收到的json缺少字段,或者数据类型不对的问题,如果每个字段都要去检查类型,确实会很麻烦。为了简化这个过程,nlohmann::json 提供了一些方便的函数来获取字段的值,并且在获取值的过程中会自动检查字段的类型。函数来获取字段的值,并且在获取值的过程中自动检查了字段的类型。这样,即使某个字段的值为 null,也不会抛出异常。使用这些函数可以大大简化获取字段值的过程,避免了手动检查类型的麻烦。在上面的示例中,我们使用了。

2023-06-05 11:22:21 14

原创 C++命名返回值优化(named return value optimization,或 NRVO)(移动构造函数move())

3. 有分支,一般无 NRVO确实产生了跟2. move 会禁止 NRVOmove相同的效果;但是可以看到之前的1. 简单返回对象,并没有产生跟move相同的效果。如果产生了跟move相同的效果,就需要我们在移动构造函数里实现我们的移动构造操作了,否则可能会出问题。参考文章:【转】现代C++之万能引用(T&&)Universal reference(转发引用、通用引用)、完美转发、引用折叠(引用坍缩 reference collapsing)返回值优化(NRVO)

2023-06-05 11:04:24 18

原创 C++引用折叠与完美转发(模板T规则,自己总结)(写的有点乱,可能有错误,仅供参考)引用折叠规律

反正就记住原则:就逐个把各个模板遍历,看传入参数类型,能够匹配上哪个模板里面括号内考虑引用折叠后的参数类型,看哪个模板能匹配上,如果匹配上,表示就是调用这个模板,然后根据引用折叠后的替换展开,看能否得到T的类型,如果不能,就看引用折叠前的,最终得到T的类型。C++引用折叠是C++11引入的一种特性,用于简化模板中的引用类型的语法。引用折叠的作用是,当我们在模板中使用引用类型的参数时,无论是左值引用还是右值引用,都可以使用同一种语法来传递参数,而不需要使用。

2023-06-05 00:19:07 214

原创 C++虚函数virtual(动态多态)(纯虚函数)

怎么判断函数是虚函数还是普通函数?用VS,在调用对象的方法的地方。。按alt+g ,如果他跳转到正确的函数,那也就意味着他是编译时可以确定的。。。但是如果他跳到了这个调用对象的基类的函数,那么也就意味着他是一个运行时多态,也就是虚函数。。。这个方法对于接口函数更明显。。。本来想去找实际的调用函数,但是每次都跳到等于零的虚函数,这十分让人火大。。。但是这正好说明了虚函数的机制,就是说va根本没法解析虚函数。。明知道调用的是子类。但你跳转过去的时候它就是基类。原理就是va属于静态解析。

2023-06-03 19:06:57 319

转载 【转】现代C++之万能引用(T&&)Universal reference(转发引用、通用引用)、完美转发、引用折叠(引用坍缩 reference collapsing)返回值优化(NRVO)

(1)在类型声明当中, “&&” 要不就是一个 rvalue reference ,要不就是一个 universal reference – 一种可以解析为lvalue reference或者rvalue reference的引用。对于某个被推导的类型T,universal references 总是以 T&& 的形式出现。

2023-06-01 23:54:57 39

原创 C语言字符串字面量拼接(string literal concatenation)语法(字符串拼接)

具体来说,在K&R C(第一版)中引入了这种字符串字面量拼接语法。该书于1978年出版,因此可以确定该语法至少在40多年前就已经存在了。C语言中的字符串字面量拼接语法使用空格将两个相邻的字符串字面量拼接在一起,可以追溯到早期的C编译器。需要注意的是,字符串字面量拼接只适用于字符串字面量,不能用于变量或表达式。因此,使用字符串字面量拼接的语法,使得拼接字符串更加方便和直观。以外(多个空格、tab、换行可视为一个)的任何分隔符,它们会被自动拼接成一个字符串。原来这是字符串字面量拼接语法。

2023-06-01 14:36:11 357

原创 C++跨源文件锁(线程间共享锁,不同源文件共享同一锁实例)(std::mutex)

将锁的定义放在一个源文件中,然后在头文件中声明为extern。这样,多个源文件中包含该头文件时,都会引用同一个锁实例。这样,不同源文件都可以使用同一个锁实例,以保证它们之间的互斥。

2023-05-31 20:51:08 19

原创 C++ typename关键字

在C++中,typename是一个关键字,用于指示其后面的标识符是一个类型名。在模板编程中,typename通常用于指示模板参数是一个类型,而不是一个值或一个函数。是一个嵌套类型,但是在编译器看来,它可能是一个静态成员变量或函数,因此需要使用typename来指示它是一个类型名。如果不使用typename,编译器会认为。是一个静态成员变量或函数,从而导致编译错误。

2023-05-31 16:54:02 18

原创 C++17 std::shared_mutex(读写锁机制)(提高并发)

是C++17标准库中新增的一个类,它提供了读写锁机制,可以同时支持多个线程对同一个资源进行读操作,但只能支持一个线程对同一个资源进行写操作。如果一个线程正在进行写操作,其他线程无法进行读操作或写操作,直到写操作完成。如果多个线程同时访问被保护的资源,其中一个线程会获得锁,其他线程会被阻塞,直到获得锁的线程释放锁。可以看到,两个读线程可以同时读取共享资源,而写线程必须等待读线程结束后才能修改共享资源,这样可以避免多个线程同时写同一个资源而导致的数据竞争问题。,如果你需要对共享资源进行读写操作,可以使用。

2023-05-31 16:36:35 680

原创 C++怎么消除未使用变量的编译警告?warning: unused parameter ‘xxx’ [-Wunused-parameter](变量前加(void)声明为无用)

表示将该变量声明为无用的,这样编译器就不会再提示该变量未被使用的警告了。这种方法通常用于函数参数中有未使用的变量的情况,可以避免编译警告的干扰。在C++中,将变量名前加上。

2023-05-31 15:03:57 29

原创 vscode怎么设置顶部横向滚动条宽度(太细了看不清楚)

这滚动条也太™细了,有时鼠标点半天都点不到。

2023-05-31 11:16:57 15

原创 printfriendly网页解析,允许复制内容(复制禁用复制)(禁用禁用右键)(禁用文本复制禁用)(不能复制、无法复制)

使用方法也很简单,只需要将需要解析的网页链接粘贴进入,然后点击。有的网站会禁用文本复制,右键也被禁用,十分恶心~~(不仅右键也给禁了,文本选择也给禁了。

2023-05-29 23:25:25 16

原创 C++函数对象(Function Object、仿函数Functor)(类重载operator()运算符:class方式、struct方式)(lambda表达式)

函数对象的定义方式有两种:一种是定义一个类,重载operator()运算符;另一种是使用lambda表达式。

2023-05-29 22:33:06 13

原创 C++11 addressof()函数(模板函数)(在对象重载了取地址运算符时,获取对象真实地址)

函数只能获取可寻址的对象的地址,即不能获取无法取地址的对象的地址,比如字面量、字符串常量等。保证返回的指针是真正的指向其参数的地址,即使其参数是一个重载了取地址运算符的类类型对象。函数可以获取一些特殊类型的对象的地址,比如重载了取地址符的类对象、位域、临时对象等。是一个函数模板,它返回一个指向其参数的地址的指针。函数的实现原理是通过指针运算来获取对象的地址,而不是通过取地址符。它的作用是获取一个对象的地址,与C++中的取地址符。是要获取地址的对象的引用,的地址,并将其赋值给指针。所指向的对象的成员变量。

2023-05-28 23:30:22 509

原创 C++引用特性:1、不能绑定空对象 2、不能重定向(如果设计成可以,会产生歧义) 3、对引用或引用的引用取地址,都为原对象地址

如上,c是a的引用,d是c的引用,可以看到a、b、c的地址都相同。

2023-05-28 17:27:02 16

原创 vscode不实时刷新文件怎么办?(打开文件内容不变)(vscode日志不刷新)

有时用vscode打开一个日志文件,明明这个日志不断在写,但是vscode上的内容就是不变化。解决办法:将这个文件拷贝一份,再打开就行了。反复打开,发现最后一行就没变化过。这个问题的原因还不是很清楚。

2023-05-27 16:58:50 80

原创 C++11 is_same<T, U>::value 模板类(用来判断两个类型是否相同)

可以用于类型判断和类型推导,它可以帮助我们编写更加通用和灵活的代码。是 C++11 引入的类型判断工具,它定义在。可以用来判断两个类型是否相同,如果相同则返回。,用来表示两个类型是否相同。,表示两个类型不相同。在特化版本中,我们将。在上面的代码中,我们定义了一个模板类。相同,所以输出结果为 1;不相同,所以输出结果为 0。,并且有一个静态成员变量。在上面的代码中,我们使用。,表示两个类型相同。

2023-05-24 21:27:04 33

原创 C++11 typename remove_reference<T>::type(去除传入类型引用符号)

在上面的代码中,我们使用 decltype 来获取变量 a、b、c 的类型,然后使用 remove_reference 来去除引用符号,最后使用。来表示去除引用符号后的类型。由于 a、b、c 的类型都是 int,所以。来表示去除引用符号后的类型,从而方便后续的类型推导和模板实例化。可用于获取T去除引用符号后的类型。,就能得到T去除引用符号后的类型。在实际编程中,我们可以使用。

2023-05-24 21:02:36 595

原创 MQTT中间件Eclipse Mosquitto安装和使用(.asc文件)MQTT监控命令mosquitto_sub(mosquitto C++库源码编译)

昨天弄的,今天忘了不少。。。

2023-05-24 15:54:47 557

原创 systemctl教程(systemctl命令)(systemd)(service命令)

创建一个service文件,比如,并将其放在目录下。在文件中添加以下内容:其中,是服务的描述,After指定服务启动的顺序,Type指定进程类型,Restart和RestartSec指定进程死亡后自动重启的策略,User指定进程运行的用户,ExecStart指定进程的启动命令(如果带参数可在其后添加参数),WantedBy指定服务启动的目标。启动服务并设置开机自启动:现在,进程已经被systemd管理了,如果进程死掉了,systemd会自动拉起它。

2023-05-23 20:57:12 500

原创 typora怎么把本地固定目录下的图片拷贝到相对目录,怎么分享图片(图片分享)

如图,我的这张图片是存在固定目录下的,我把这个.md文件分享给别人,别人就看不到图片了。我们只需要点击图片按钮,并点击“将图片复制到到…”或者“将图片移动到…把这个目录连同我们的.md文件一起分享给别人,被人就能看到图片了。

2023-05-22 18:07:08 25

原创 C++decltype(declare type 声明类型)(推导类型、获取类型)(变量的类型、引用的类型、表达式的类型以及函数返回值的类型)

例如,当expression是一个变量名时,decltype会推导出该变量的类型。当expression是一个表达式时,decltype会推导出该表达式的类型。其中,expression是一个表达式,var_name是一个变量名。decltype的原理是通过编译器对表达式进行分析,推导出表达式的类型。它的推导规则与C++的类型推导规则类似,但是有一些特殊的情况需要注意。它可以用来推导变量的类型、引用的类型、表达式的类型以及函数返回值的类型。在这个例子中,y的类型会被推导为int,因为x的类型是int。

2023-05-21 22:21:13 29

原创 C++11断言static_assert(静态断言,编译期检查)

在上面的代码中,is_power_of_two结构体使用static_assert检查模板参数N是否大于0,并检查N是否为2的幂次方。在main函数中,定义一个大小为8的数组,并使用is_power_of_two结构体检查数组大小是否为2的幂次方。与assert不同的是,static_assert是在编译期进行检查,而不是在运行期进行检查。在上面的代码中,print函数使用static_assert检查模板参数T是否为整数类型,如果不满足则编译器会报错并输出错误信息。表示N是否为2的幂次方。

2023-05-21 21:29:52 398

原创 C++四种cast转换(const_cast、static_cast、dynamic_cast、reinpreter_cast)类型转换运算符

需要注意的是,使用const_cast进行类型转换时,必须保证原始指针或引用所指向的对象是非常量的,否则修改其值将会导致未定义的行为。需要注意的是,类型转换可能会导致数据精度的损失、溢出、未定义的行为等问题,因此在进行类型转换时需要谨慎处理,避免出现错误。这种转换适用于面向过程的没有类的概念的c语言的转换,然而这样的转换符也能不分青红皂白的应用于类和类的指针,没有安全检查。需要注意的是,如果void指针指向的对象类型与目标类型不匹配,使用static_cast进行转换会导致未定义行为。

2023-05-21 18:00:11 355

原创 C++未定义行为(Undefined Behavior,简称UB)

在C++中,未定义行为被称为UB,这是因为C++标准中有很多行为没有被明确定义,而是留给编译器或操作系统的实现来决定。这些未定义的行为包括指针运算、类型转换、溢出、多线程同步等。由于这些行为没有被明确定义,因此它们的结果是不确定的,可能会导致程序崩溃或产生错误的结果。在计算机科学中,未定义行为(Undefined Behavior,简称UB)是指程序在运行时的行为没有被编程语言或标准所定义,因此其结果是不确定的。这意味着,当程序出现未定义行为时,它可能会产生任何结果,包括崩溃、错误的输出、安全漏洞等。

2023-05-21 17:39:57 22

原创 modern c++是什么?

这些新特性和改进使得C++更加现代化、高效、安全和易用,也使得C++在各种应用场景中更加适用。同时,这些新特性和改进也使得C++与其他现代编程语言更加接近,使得C++在跨平台、大规模软件开发、高性能计算等领域中具有更强的竞争力。Modern C++是指C++11、C++14、C++17和C++20这些新标准所引入的一系列新特性和改进。

2023-05-21 16:42:41 10

原创 C++ puts()函数(输出简单字符串)

函数也可以用来输出字符串,而且功能更加强大,可以输出各种格式的数据。函数也比较适合用来输出一些简单的字符串,比如欢迎信息、提示信息等等。函数一样需要使用格式化字符串,直接输出字符串即可。因此,如果只需要输出简单的字符串,建议使用。如果需要输出各种格式的数据,可以使用。,并将其输出到标准输出流(即屏幕)上。函数会自动在字符串末尾添加一个换行符。函数快,因为它不需要进行格式化处理。函数的优点是简单易用,不需要像。运算符来输出字符串。结尾,否则会导致输出错误。函数更加简单易用,不需要像。函数输出的字符串必须以。

2023-05-20 18:22:12 436

原创 C++前置自增运算符和后置自增运算符返回值的区别(++x和x++返回值的区别)(前置自增运算符++x返回的是变量x自增后的左值,后置自增运算符x++返回的是变量x自增前的右值)

前置自增运算符返回的是自增后的变量,可以被赋值;而后置自增运算符返回的是自增前的变量,不能被赋值。自增后的内存地址,可以被赋值。是先自增再使用,而后置自增运算符。在C++中,前置自增运算符。自增前的值,不能被赋值。这是因为前置自增运算符。

2023-05-19 21:41:02 14

原创 C++字面量(Literal)与字面值(Literal Value)区别

字面量是指程序中直接使用的常量值,包括整型字面量、浮点型字面量、字符型字面量、字符串字面量等。字面量是编译器在编译时就能够识别和处理的常量值,不需要在运行时再进行计算或转换。C++中的字面量可以用于变量初始化、函数参数传递、表达式计算等场景。常见的C++字面量包括整型字面量、浮点型字面量、字符型字面量、字符串字面量、布尔型字面量等。字面值是指字面量所表示的具体数值或字符值。例如,整型字面量10、浮点型字面量3.14、字符型字面量’a’等都是字面量,而它们所表示的具体数值或字符值就是字面值。

2023-05-19 20:39:18 60

原创 Error response from daemon: error creating aufs mount to /var/lib/docker/aufs/mnt/(overlay2)文件系统。已解决

这个问题貌似是文件系统的问题,当前安装的docker与文件系统不兼容。

2023-05-19 11:49:44 148 2

转载 Linux分区(文件系统file system)

分区必须要挂载到目录结构 (directory tree)里面才可以被使用,被挂载的目录就是该分区的根目录,所以被用来挂载的目录必须是个空目录,否则里面的内容会不见。有几个比较特殊的分区,在装Linux系统的时候就会需要分好,包括主分区(挂载到/),home分区(挂载到/home,用于放用户目录,就是我们每次登陆进去都可以看到处于一个波浪线~的位置,如果pwd就会发现是我们登陆的用户的用户目录的路径,如果没有这个分区的话可能会无法登录),交换分区(挂载到/swap,用于内存交换)。

2023-05-18 23:55:57 26

原创 docker是怎么决定容器内容存储到哪个目录的?(存储驱动决定的)(乱七八糟的)(df -Th查看目录文件系统类型、查看文件系统类型)

需要注意的是,存储驱动和文件系统是两个不同的概念,存储驱动是Docker用来管理存储的组件,而文件系统是存储驱动使用的一种存储方式。需要注意的是,Docker的存储驱动和文件系统是两个不同的概念,存储驱动是Docker用来管理存储的组件,而文件系统是存储驱动使用的一种存储方式。需要注意的是,aufs存储驱动已经被官方废弃,建议使用overlay2存储驱动。总之,对于/var目录的文件系统类型,通常没有特别的要求,但是应该根据实际需求进行选择,并确保/var目录有足够的磁盘空间,并定期清理其中的数据。

2023-05-18 23:11:35 216

YUV查看工具(windows)和YUV测试文件

YUV查看工具(windows)和YUV测试文件,可在windows上查看YUV文件

2022-09-21

矿灯抓包20220823

192.168.15.170 是客户端,192.168.15.170 是矿灯.

2022-08-23

vsftpd-3.0.5

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。 vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。 比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

2022-08-22

海康摄像头192.168.1.69_2022-04-21_17-47-27.log

海康摄像头192.168.1.69_2022-04-21_17-47-27.log

2022-04-21

hello-dbus3-0.1.tar

hello-dbus3-0.1.tar

2022-01-19

4_1599623292.4111953.npz

Intel Realsense D435摄像头深度数据/Intel Realsense D435摄像头深度数据

2020-09-10

Dive-into-DL-Pytorch.rar

Dive-into-DL-Pytorch

2020-04-29

OpenCV-Python-Toturial-中文版.rar

OpenCV-Python-Toturial-中文版/OpenCV-Python-Toturial-中文版

2019-09-06

Git-2.23.0-64-bit.zip

Git-2.23.0-64-bit.zip,Git-win/

2019-08-31

CMD_right_click_key_menu_with_administration.reg

CMD_right_click_key_menu_with_administration

2019-08-29

[gifcam] Setup_v5.5.0.0.zip

gifcam/gifcam/gifcam/gifcam/gifcam/gifcam/gifcam/gifcam/

2019-08-28

mnist-original.zip

MNIST手写数字图像数据集

2019-08-16

棉株识别系统研究.pdf

棉株识别系统研究

2019-07-31

Intel-RealSense-D400-Series-Datasheet

Intel RealSense D400系列摄像头使用文档 /Intel RealSense D400系列摄像头使用文档

2019-07-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除