【c++随笔15】c++常用第三方库

【c++随笔15】c++常用第三方库

  • 一、数据库相关:
    • HDFS、libpq、SQLite、RocksDB、unixODBC、Nanobdc、Ignite ;
  • 二、网络通信相关:
    • libcurl、libevent、libssh、mosquitto、nghttp2、libuv;
  • 三、加密和安全相关:
    • 1、OpenSSL
  • 四、序列化和数据格式相关:
    • Protobuf、json(nlohmann)、Rapidjson、pugixml、Xlnt、Yamlcpp、Libxl:
  • 五、压缩compress
    • Minilzo、Snappy、zlib;
  • 六、其他:
    • log4cxx:、LLVM、Googletest、qt、Boost、Tcmalloc、Thrift、gflags:、Libiconv C++ Library:、Libuuid、Java Native Interface(JNI)、Node.js、OpenLDAP:

原创作者:郑同学的笔记
原创地址:https://zhengjunxue.blog.csdn.net/article/details/131812432
qq技术交流群:921273910

一、数据库相关:

HDFS、libpq、SQLite、RocksDB、unixODBC、Nanobdc、Ignite ;

  • 1、HDFS:

    • 官网: https://hadoop.apache.org/docs/r3.3.1/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html
    • 简介: HDFS (Hadoop Distributed File System) 是 Apache Hadoop 生态系统中的分布式文件系统。它被设计用于存储和处理大规模数据集,并提供高可靠性、高容错性和高吞吐量的数据访问。
    • 用途: HDFS通常用于大数据处理和分析任务,如数据存储、数据备份、批处理作业和实时数据处理。
  • 2、libpq:

    • 官网: https://www.postgresql.org/docs/current/libpq.html
    • 简介: libpq是PostgreSQL数据库的C语言客户端库。它提供了与PostgreSQL数据库进行交互的API,使开发人员可以使用C语言编写与数据库的通信代码。
    • 用途: libpq可以用于开发基于PostgreSQL数据库的应用程序,包括数据库连接、执行查询、事务管理等。
  • 3、SQLite:

    • 官网: https://www.sqlite.org/index.html
    • 简介: SQLite是一个嵌入式关系型数据库引擎。它是一个零配置、无服务器的数据库,将整个数据库存储在一个单一的文件中。SQLite具有轻量级、快速、可靠和易于使用的特点。
    • 用途: SQLite广泛应用于各种应用程序和平台,包括移动应用、桌面应用、嵌入式系统和浏览器。它适用于需要本地存储和管理结构化数据的场景。
  • 4、RocksDB:

    • 官网: https://rocksdb.org/
    • 简介: RocksDB是一个高性能的键值存储库,由Facebook开发并开源。它基于Google的LevelDB,并进行了优化和改进,提供了较高的读写性能和低延迟的数据访问。
    • 用途: RocksDB适用于需要高性能和低延迟的键值存储场景,如缓存、日志存储、分布式存储系统和实时数据处理。
  • 5、unixODBC:

    • 官网: http://www.unixodbc.org/
    • 简介: unixODBC是一个开源的ODBC (Open Database Connectivity) 驱动管理器。它提供了一个统一的接口,使应用程序能够通过ODBC与不同的数据库进行交互。
    • 用途: unixODBC可用于开发需要与多个数据库进行交互的应用程序,它提供了对ODBC兼容数据库的连接和查询功能,如MySQL、Oracle、SQL Server等。
  • 6、Nanobdc

    • 网址:https://github.com/nanodbc/nanodbc
    • 简介:Nanobdc是一个轻量级的ODBC库,用于在C++程序中与数据库进行交互。
    • 用途:用于在C++程序中进行ODBC数据库访问。
  • 7、Ignite C++ Library:

    • 官网:https://ignite.apache.org/
    • 简介:Ignite C++ Library 是 Apache Ignite 的 C++ 版本库,是一个分布式内存计算平台。Ignite 提供了高性能、可伸缩的分布式数据网格和计算功能,以支持大规模数据处理、缓存、机器学习和实时分析等应用场景。它具有灵活的 API 和丰富的功能,可以方便地在 C++ 应用程序中进行分布式计算和数据处理。
    • 用途:Ignite C++ Library 主要用于构建分布式应用程序和处理大规模数据。它提供了丰富的数据结构和操作函数,如分布式缓存、分布式数据集、分布式计算等,可以帮助开发者在集群环境中进行高效的并行计算、数据共享和协作。Ignite C++ Library 还提供了与其他编程语言和工具的集成能力,如 Java、Python、JDBC、ODBC 等,方便与现有的数据处理和分析工具进行交互。

二、网络通信相关:

libcurl、libevent、libssh、mosquitto、nghttp2、libuv;

  • 1、libcurl:

    • 官网:https://curl.se/
    • 简介:libcurl是一个用于传输数据的免费、开源、可移植的客户端URL传输库。它支持多种协议,包括HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、TELNET、DICT、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。libcurl还支持HTTPS证书验证、HTTP POST、HTTP PUT、FTP上传和下载、代理、cookie、用户名+密码身份验证等功能。
    • 用途:libcurl常用于开发网络应用程序,如网页抓取、文件传输、API调用等。
  • 2、libevent:

    • 官网:http://libevent.org/
    • 简介:libevent是一个开源的事件通知库,用于网络编程。它提供了一个简单且高效的API,用于注册并触发事件,包括网络I/O、信号和定时器。libevent可以与其他网络库和框架(如libcurl和nginx)集成,使开发者能够编写高性能、可扩展的网络应用程序。
    • 用途:libevent常用于开发高性能的服务器程序,如Web服务器、代理服务器、消息队列等。
  • 3、libssh:

    • 官网:https://www.libssh.org/
    • 简介:libssh是一个开源的SSH协议客户端库,用于实现SSH连接和通信。它提供了一组简单、易用的API,用于建立SSH连接、进行身份验证、执行远程命令、传输文件等。libssh支持多种加密算法和认证方式,包括SSH1和SSH2协议。
    • 用途:libssh常用于开发SSH客户端程序,如远程服务器管理工具、文件传输工具等。
  • 4、mosquitto:

    • 官网:https://mosquitto.org/
    • 简介:mosquitto是一个开源的MQTT(Message Queuing Telemetry Transport)消息代理服务器。它实现了MQTT协议,提供了发布/订阅模式的消息传递功能。mosquitto支持TLS/SSL加密、身份验证、持久化消息、QoS(Quality of Service)保证等特性。
    • 用途:mosquitto常用于开发物联网(IoT)应用程序,如传感器数据采集、远程控制、消息通知等。
  • 5、nghttp2:

    • 官网:https://nghttp2.org/
    • 简介:nghttp2是一个开源的HTTP/2协议库,用于实现HTTP/2协议的客户端和服务器。它提供了一组高性能、可扩展的API,用于构建支持HTTP/2协议的网络应用程序。nghttp2支持多路复用、流量控制、头部压缩、服务器推送等特性。
    • 用途:nghttp2常用于开发支持HTTP/2协议的网络应用程序,如Web服务器、代理服务器、CDN等。
  • 6、libuv:

    • 官网:https://libuv.org/
    • 简介:libuv是一个开源的跨平台异步I/O库,用于实现事件驱动的网络编程。它提供了一组简单、高效的API,用于处理文件系统、网络、定时器等事件。libuv支持Windows、Linux、macOS等操作系统,并能与其他网络库和框架(如Node.js)集成。
    • 用途:libuv常用于开发高性能、可扩展的网络应用程序,如Web服务器、游戏服务器、分布式系统等。

三、加密和安全相关:

1、OpenSSL

  • 官网:https://www.openssl.org/

  • 简介:C++ OpenSSL 是一个强大的软件库,由 C++ 编写,提供了广泛的密码学功能和安全相关工具。它支持各种密码算法、密钥管理、数字证书操作等。C++ OpenSSL 已经成为密码学领域的事实标准之一,并广泛应用于网络通信、数据加密、身份验证等安全场景。

  • 用途:
    安全通信:C++ OpenSSL 可以用于构建安全的客户端和服务器应用程序,通过支持 SSL/TLS 协议进行数据的加密和解密,确保数据传输的机密性和完整性。
    数字证书管理:C++ OpenSSL 提供了生成、签发、验证和管理数字证书的功能。这些数字证书可以用于身份验证、数据加密和签名等场景,保护通信的安全性。
    密码学功能:C++ OpenSSL 提供了丰富的密码学函数库,包括对称加密算法(如 AES、DES)、非对称加密算法(如 RSA、Diffie-Hellman)、哈希函数(如 SHA-256、MD5)等。开发者可以使用这些功能实现数据加密、解密和签名等操作。
    安全增强功能:C++ OpenSSL 提供了随机数生成器、密码学伪随机数生成器、安全哈希函数等功能,可以帮助开发者提高应用程序的安全性,增加密码学强度。

四、序列化和数据格式相关:

Protobuf、json(nlohmann)、Rapidjson、pugixml、Xlnt、Yamlcpp、Libxl:

  • 1、Protobuf

    • 网址:https://developers.google.com/protocol-buffers
    • 简介:Protobuf是Google开发的一种高效的序列化数据格式,用于在不同平台和语言之间传输和存储结构化数据。
    • 用途:用于在C++程序中进行数据序列化和反序列化。
  • 2、json(nlohmann):

    • 官网:https://github.com/nlohmann/json
    • 简介:nlohmann/json 是一个简单而强大的 C++ JSON 库,针对现代 C++ 进行了优化。它提供了一组易于使用的 API,用于处理和操作 JSON 数据。
    • 用途:nlohmann/json 主要用于解析、生成和操作 JSON 数据。开发者可以使用该库轻松地解析 JSON 字符串,访问和修改 JSON 对象,以及将 C++ 数据结构转换为 JSON 格式。
  • 3、Rapidjson

    • 网址:https://rapidjson.org/
    • 简介:Rapidjson是一个快速的JSON解析和生成库,提供了高性能的JSON处理功能。
    • 用途:用于在C++程序中处理JSON数据。
  • 4、pugixml:

    • 官网:https://pugixml.org/
    • 简介:Pugixml是一个轻量级的XML解析库,提供了高性能和易用的XML解析功能。。
    • 用途:pugixml 主要用于解析和生成 XML 文档。开发者可以使用 pugixml 轻松地读取、搜索和修改 XML 数据,以及将 C++ 数据结构转换为 XML 格式。
  • 5、Xlnt

    • 网址:https://github.com/tfussell/xlnt
    • 简介:Xlnt是一个C++ Excel库,提供了读取和写入Excel文件的功能。
    • 用途:用于在C++程序中进行Excel文件的读写操作。
  • 6、Yamlcpp

    • 网址:https://github.com/jbeder/yaml-cpp
    • 简介:Yamlcpp是一个C++ YAML库,提供了对YAML(Yet Another Markup Language)文件的解析和生成功能。
    • 用途:用于在C++程序中处理YAML数据。
  • 7、Libxl:

    • 官网:https://www.libxl.com/
    • 简介:Libxl 是一个跨平台的 C++ 库,用于读取和写入 Excel 文件。它提供了简单易用的 API,可以在 C++ 应用程序中进行 Excel 文件的操作,包括创建、修改、读取和写入 Excel 表格、单元格、格式等内容。
    • 用途:Libxl 主要用于处理 Excel 文件,使开发者能够在自己的应用程序中对 Excel 数据进行读取和写入操作。通过 Libxl,你可以在 Excel 文件中创建、修改和获取数据,设置单元格格式、合并单元格、设置公式和函数等。Libxl 支持多种 Excel 文件格式,如 .xls 和 .xlsx,同时具备跨平台特性,可在 Windows、Linux、MacOS 等操作系统上使用。

五、压缩compress

Minilzo、Snappy、zlib;

  • 1、Minilzo:
    • 官网: https://www.oberhumer.com/opensource/lzo/
    • 简介: Minilzo是一个轻量级、高性能的压缩库。它专为嵌入式系统设计,占用较小的内存空间。Minilzo提供快速的压缩和解压缩速度,适用于资源有限的应用程序。
    • 用途: Minilzo适用于需要在嵌入式系统中进行数据压缩和解压缩的应用,例如网络传输、存储优化和实时数据处理。
  • 2、Snappy:
    • 官网: https://github.com/google/snappy
    • 简介: Snappy是由谷歌开发的压缩和解压缩库。它旨在提供高速的压缩和解压缩,同时保持合理的压缩比。Snappy针对速度进行了优化,常用于需要快速数据处理的应用,如大数据分析和Web服务。
    • 用途: Snappy常用于需要高速压缩和解压缩的场景,包括实时数据传输、网络传输、大数据处理和内存限制的环境。
  • 3、zlib:
    • 官网: https://www.zlib.net/
    • 简介: zlib是一个流行的通用压缩库。它提供了良好的压缩比和相对较快的压缩和解压缩速度。zlib被广泛应用于各种应用程序和格式,包括HTTP、PNG图像文件和gzip文件格式。它是许多编程语言和操作系统的标准库。
    • 用途: zlib适用于需要在各种应用程序中进行数据压缩和解压缩的场景,包括文件压缩、网络传输、数据库压缩、备份和存档等。

六、其他:

log4cxx:、LLVM、Googletest、qt、Boost、Tcmalloc、Thrift、gflags:、Libiconv C++ Library:、Libuuid、Java Native Interface(JNI)、Node.js、OpenLDAP:

  • 1、log4cxx:

    • 官网:https://logging.apache.org/log4cxx/
    • 简介:log4cxx 是 Apache Software Foundation 开发的 C++ 版本的日志记录工具,它是 log4j 的一个移植版本。log4cxx 提供了一组灵活的 API 和配置选项,可以在应用程序中实现高性能、可配置的日志记录。
    • 用途:log4cxx 可以帮助开发者在 C++ 应用程序中实现全面的日志记录功能。通过 log4cxx,开发者可以按需进行日志级别控制、日志输出格式化、动态配置等操作,从而方便地进行日志的记录和管理。log4cxx 在许多领域都有广泛的应用,例如服务器端应用、嵌入式系统、游戏开发等。
  • 2、LLVM:

    • 官网:https://llvm.org/
    • 简介:LLVM 是一种 modul化和可重用编译器和工具链技术的集合。它最初是为了实现编译优化和代码生成而设计,并在实践中发展成为一个通用的编译器基础设施。LLVM 提供了丰富的库和工具,可用于构建编译器、静态分析工具、性能分析工具等。
    • 用途:LLVM 可以用于构建各种类型的编译器和工具链。开发者可以利用 LLVM 提供的模块化架构和强大的优化能力,开发自定义编译器,对代码进行静态分析、转换和优化。此外,LLVM 也为各种编程语言提供了支持,如 C/C++、Rust、Swift 等,可以用于构建这些语言的编译器和工具。
  • 3、Googletest

    • 网址:https://github.com/google/googletest
    • 简介:Googletest是Google的C++单元测试框架,提供了丰富的断言和测试功能。
    • 用途:用于编写和执行C++的单元测试。
  • 4、qt

    • 官网:https://www.qt.io/
    • 简介:Qt 是一个跨平台的应用程序和用户界面开发框架,用于使用 C++ 编程语言开发图形界面应用程序。它由 Qt 公司(现在是 Digia 公司)开发和维护,提供了丰富的库和工具,可以帮助开发者轻松构建高质量的应用程序。
    • 用途:Qt 被广泛用于开发各种类型的应用程序,包括桌面应用程序、嵌入式应用程序、移动应用程序以及其他图形界面应用程序。Qt 提供了一套全面的工具和组件,包括图形渲染、用户界面控件、网络通信、数据库访问、多线程支持等,使开发者能够快速构建功能强大的应用程序。Qt 的特点包括其跨平台性、可扩展性、易用性和良好的性能。
  • 5、Boost

    • 官网:https://www.boost.org/
    • 简介:Boost 是一个开源的 C++ 库集合,提供了丰富的工具和组件,扩展了 C++ 语言的功能。Boost 的目标是提高 C++ 开发效率和质量,并促进 C++ 标准库的发展。
    • 用途:Boost 提供了大量的库和工具,用于解决各种常见的编程问题。它包括但不限于字符串处理、容器与算法、日期与时间、并发编程、网络通信等方面的功能。开发者可以使用 Boost 提供的组件来加速开发、提高性能、增加安全性,并增强现有 C++ 代码的功能。
  • 6、Tcmalloc

    • 网址:https://github.com/gperftools/gperftools
    • 简介:Tcmalloc是Google的内存分配器,提供了高性能和低碎片化的内存分配功能。
    • 用途:用于在C++程序中进行内存分配和管理。
  • 7、Thrift

    • 网址:https://thrift.apache.org/
    • 简介:Thrift是一个跨语言的服务框架,用于构建可扩展的分布式系统。
    • 用途:用于在C++程序中进行分布式系统开发。
  • 8、gflags:

    • 官网:https://gflags.github.io/gflags/
    • 简介:gflags 是一个跨平台的命令行参数解析库,由 Google 开发和维护。它允许开发者定义和解析命令行参数,包括标志(flags)和非标志参数。gflags 提供了简单易用的 API,可以方便地在 C++ 应用程序中处理命令行参数。
    • 用途:gflags 主要用于在 C++ 应用程序中处理命令行参数,使开发者能够轻松定义、解析和访问这些参数。通过 gflags,开发者可以设置标志参数的默认值、类型、描述等信息,并在应用程序中获取用户传入的命令行参数。gflags 还支持高级功能,如命令行帮助、自动生成配置文件等,使命令行参数处理更加便捷和灵活。gflags 在很多 C++ 项目中被广泛应用,包括 Google 的开源项目和其他许多独立开发者的应用程序。
  • 9、Libiconv C++ Library:

    • 官网:https://www.gnu.org/software/libiconv/
    • 简介:Libiconv 是一个开源的字符编码转换库,用于在不同字符编码之间进行转换。它支持超过 150 种字符集和编码方案,包括常见的 ASCII、UTF-8、GBK、ISO-8859 等。Libiconv 提供了简单易用的 API,可以在 C++ 应用程序中进行字符编码的转换和处理。
    • 用途:Libiconv 主要用于解决字符编码转换的问题。在现实应用中,经常会遇到不同编码的数据交互和处理,例如读取外部文件、网络通信、国际化等场景。Libiconv 可以帮助开发者将一种字符编码转换为另一种,保证数据在不同编码之间的正确传输和处理。通过 Libiconv,开发者可以方便地实现字符编码的转换、字符串处理、文本解析等功能,提高应用程序的兼容性和可移植性。
  • 10、Libuuid

    • 网址:https://sourceforge.net/projects/libuuid/
    • 简介:Libuuid是一个UUID生成库,用于生成唯一标识符。
    • 用途:用于在C++程序中生成和处理UUID。

如果您希望在C++中使用Java的功能,可以考虑使用Java Native Interface(JNI)或Java Native Access(JNA)来实现C++和Java之间的交互。通过JNI或JNA,可以在C++中调用Java代码,并利用JDK提供的功能和类库。
这里提供JDK的官方网站、简介和用途供您参考:

  • 11、Java Native Interface(JNI)

    • 官网:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
    • 简介:JDK是Java开发者使用的软件开发工具包,包含了编译器、调试器、运行时环境和其他开发工具。它提供了一种完整的Java开发环境,用于创建、编译和执行Java应用程序。
    • 用途:JDK用于Java应用程序的开发、编译和运行。它包含了完整的Java标准库和工具,提供了丰富的功能和API,用于开发各种类型的Java应用、Applet和Web应用等。
      需要注意的是,使用JNI或JNA调用Java代码需要熟悉JNI规范和技巧,并理解C++和Java之间的交互方式和内存管理。通过这种方式,可以在C++中使用JDK提供的功能和类库,实现跨语言的功能扩展。
  • 12、Node.js

    • 网址:https://nodejs.org/
    • 简介:Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建高性能的网络应用程序。
    • 用途:用于在C++程序中嵌入和执行JavaScript代码。
  • 13、OpenLDAP:

    • 官网:https://www.openldap.org/
    • 简介:OpenLDAP 是一个开源的实现了 Lightweight Directory Access Protocol (LDAP) 的软件套件。LDAP 是一种用于访问和维护分布式目录服务的协议,广泛应用于身份认证、用户管理和网络资源访问控制等方面。OpenLDAP 提供了服务器端和客户端库,用于搭建和访问 LDAP 目录服务。
    • 用途:OpenLDAP 主要用于构建和管理 LDAP 目录服务。LDAP 目录服务是一种层次化的、分布式的数据存储系统,类似于数据库,但更注重于轻量级的、高效的读取操作。通过 OpenLDAP,可以搭建一个具有良好性能和可伸缩性的 LDAP 服务器,用于存储和管理组织机构、用户身份、权限信息等。同时,OpenLDAP 还提供了丰富的 API 和工具,用于开发和管理 LDAP 目录服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/194657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 基础】17 集合

文章目录 1.基本概念2.核心接口3.常见实现1)List 接口的实现类ArrayListLinkedListVector 2)Set 接口的实现类HashSetLinkedHashSetTreeSet 3)Queue 接口的实现**类**ArrayQueue 4)Map 接口的实现类HashMapLinkedHashMapTreeMap 4…

GateWay的路由与全局过滤器

1.断言工厂 我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的条件 例如Path/user/**是按照路径匹配,这个规则是由 org.springframework.cloud.gateway.handler.predicate.PathRoutePr…

shell编程-awk命令详解(超详细)

文章目录 前言一、awk命令介绍1. awk命令简介2. awk命令的基本语法3. 常用的awk命令选项4. 常用的awk内置变量 二、awk命令示例用法1. 打印整行2. 打印特定字段3. 根据条件筛选行4. 自定义分隔符5. 从文件中读取awk脚本 总结 前言 awk命令是一种强大的文本处理工具&#xff0c…

柔性数组(Flexible Array Members)在C语言中的应用

什么是柔性数组? 在C语言中,柔性数组(Flexible Array Members,FAMs)是C99标凈引入的一种便捷的数据结构,用于声明具有可变大小数组的结构体。柔性数组通常用于当结构体的大小在编译时不确定,但…

【C++】异常处理 ⑦ ( 异常类的继承层次结构 | 抛出 / 捕获 多个类型异常对象 | 抛出子类异常对象 / 捕获并处理 父类异常对象 )

文章目录 一、抛出 / 捕获 多个类型异常对象1、抛出 / 捕获 多个类型异常对象2、操作弊端3、完整代码示例 二、异常类的继承层次结构1、抛出子类异常对象 / 捕获并处理 父类异常对象2、完整代码示例 - 抛出子类异常对象 / 捕获并处理 父类异常对象 自定义的 异常类 , 可能存在 …

浅析SD-WAN技术如何加强企业网络安全

在这个数字化时代,企业组网的安全性已经成为许多企业所面临的一个重要挑战。特别是随着云计算、移动办公等新型信息技术的普及,企业网络的规模和复杂度不断增加,网络攻击和数据泄露的威胁也日益增加。因此,企业需要采取更加有效的…

西南科技大学C++程序设计实验三(类与对象二)

一、实验目的 1.理解类的复制构造函数的定义、说明与使用 2.扩充类的数据成员,为其增加静态数据成员、常(const)成员、其他类定义的成员等 3.理解组合类的相关知识点 二、实验任务 阅读分析、完善程序。下面是一个学生类student的定义,数据成员包括一个代表姓名字符个数的…

23.12.3日总结

饿了么项目进度 新建菜品的添加属性: 适应不同尺寸的媒体查询: 菜品详细页面: 项目上遇到的问题 媒体查询遇到的问题: 关于媒体查询不能生效的原因-CSDN博客 答辩总结 js中声明变量的关键字(const,let…

c语言编程题经典100例——(61~65例)

1&#xff0c;写一个函数&#xff0c;判断一个数是否为正数。 #include <stdio.h> #include <stdbool.h> bool isPositive(int num) { if (num > 0) { return true; } else { return false; } }int main() { int num, cube; printf("请输入一个…

初始化 Clouder Manager 数据库报错Unable to find JDBC driver for database type: MySQL

CDH部署初始化 Clouder Manager 数据库报错。 解决方法&#xff1a; 把mysql驱动放到 /usr/share/java/目录下面(没有的新建&#xff09;&#xff0c;驱动名称也要修改为mysql-connector-java.jar 再次执行后成功&#xff1a; sudo /opt/cloudera/cm/schema/scm_prepare_data…

SpringBoot之自定义Starter

目录 一、自己的理解 1. 理解一 2. 理解二 二、自定义starter&#xff08;重点&#xff09; 三、以mybatis-spring-boot-starter为例进行分析 1. 写好自己的自动配置类逻辑 2. 创建自己的starter项目并引入自动配置类项目的依赖 3. 在其它项目中使用自定义的starter 一…

c++遍历算法的transform算法

transform 算法函数用于对指定范围内的元素进行一个操作&#xff0c;并将结果存储到另一个范围中。 template<class InputIterator, class OutputIterator, class UnaryOperation> OutputIterator transform(InputIterator first, InputIterator last, OutputIterator r…

共享智能指针shared_ptr

共享智能指针 在C中没有垃圾回收机制&#xff0c;必须自己释放分配的内存&#xff0c;否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针&#xff08;smart pointer&#xff09;。智能指针是存储指向动态分配&#xff08;堆&#xff09;对象指针的类&#xff0c;…

[ 云计算 | AWS 实践 ] 使用 Java 检查指定的密钥是否存在于给定的 Amazon S3 存储桶中

本文收录于【#云计算入门与实践 - AWS】专栏中&#xff0c;收录 AWS 入门与实践相关博文。 本文同步于个人公众号&#xff1a;【云计算洞察】 更多关于云计算技术内容敬请关注&#xff1a;CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文&#xff1a; [ 云计算 | …

C++ 智能指针和内存管理:使用指南和技巧

C是一门强大的编程语言&#xff0c;但是在内存管理方面却存在着一些问题。手动管理内存不仅费时费力&#xff0c;而且容易出错。因此&#xff0c;C中引入了智能指针这一概念&#xff0c;以更好地管理内存。 什么是智能指针&#xff1f; 在C中&#xff0c;内存的分配和释放都是…

AttributeError: ‘FieldInfo‘ object has no attribute ‘required‘.

诸神缄默不语-个人CSDN博文目录 这个bug是在安装doccano包之后&#xff0c;在运行transformers代码时出现的。 核心报错信息&#xff1a; RuntimeError: Failed to import transformers.models.bert.modeling_bert because of the following error (look up to see its trac…

Java 数组另类用法(字符来当数组下标使用)

一、原因 看力扣的时候发现有位大佬使用字符来当数组下标使用。 class Solution {public int lengthOfLongestSubstring(String s) {int result 0;int[] hash new int[130];int i 0;for(int j 0; j < s.length(); j) {while(hash[s.charAt(j)] > 0) {hash[s.charAt…

服务器入侵如何防护,业务被攻击如何处理,服务器安全防护方案

服务器是算是家用电脑的一种使用方法,主机不在用户家中,需要远程使用,在目前互联网时代占用很重要的位置&#xff0c;当然生活中也是应用广泛。服务器比普通计算机运行更快、负载更高、价格更贵。很多娱乐,工作都需要依靠服务器来运行整个体系&#xff0c;因此服务器的安全防护…

虚拟化逻辑架构: VM VirtualBox 指定6.0.24版本开启硬件辅助虚拟化功能

目录 一、实验 1.安装VM VirtualBox-6.0.24 2.安装VM VirtualBox-6.1.26 3.再次重新安装VM VirtualBox-6.0.24 二、问题 1.系统开机报错 2.Ubuntu系统无法自适应VM VirtualBox系统边框 3.VirtualBox如何开启无缝模式 3.Ubuntu如何查询软件是否已经安装 一、实验 1.安…

SCAU:主对角线上的元素之和

主对角线上的元素之和 Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: G;GCC 描述 输入一个3行4列的整数矩阵&#xff0c;计算并输出主对角线上的元素之和输入格式 3行4列整数矩阵输出格式 主对角线上的元素之和输入样例 1 2 3 4 5 6 7 8 9 10 11 12输出…