编程语言学习
文章平均质量分 79
记录编程路上遇到的各种问题,以及相关语言的学习遇到的各种问题。
雪域迷影
专业:计算机
擅长领域:C++服务端和客户端开发
兴趣:象棋、乒乓球、游泳、听音乐。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 11 中的move赋值运算符
C++11中的移动赋值运算符通过转移而非复制资源提升性能。文章展示了标准库vector和自定义类的移动赋值实现方式,重点说明了其避免复制、减少内存占用的优势。通过MyString类的例子,详细演示了移动构造函数和移动赋值运算符的实现方法,包括资源所有权的转移和原对象状态的清空。最后通过示例程序验证了移动语义的高效性,输出结果显示移动后的源对象变为空状态,而目标对象成功接管资源。原创 2025-11-14 23:38:44 · 455 阅读 · 0 评论 -
IoTClient
IoTClient [English](README.md) | 简体中文这是一个物联网设备通讯协议实现客户端,将包括主流PLC通信读取、ModBus协议、Bacnet协议等常用工业通讯协议。本组件基于.NET Standard 2.0,可用于.Net的跨平台开发,如Windows、Linux甚至可运行于树莓派上。本组件终身开源免费,采用最宽松MIT协议,您也可以随意修改和商业使用(商业使用请做好评估和测试)。开发工具:Visual Studio 2019QQ交流群:995475200.转载 2021-05-06 18:59:14 · 4092 阅读 · 0 评论 -
Java实现快速排序算法
本文介绍了Java实现的快速排序算法,这是一种基于分治思想的高效排序方法。算法通过选取基准值(pivot)将数组分为三部分,并递归排序子数组。文章提供了完整的Java代码实现,包括分区(partition)和交换(swap)操作,并对随机生成的数组进行排序演示。快速排序的平均时间复杂度为O(nlogn),适合大规模数据排序。示例展示了排序前(无序)和排序后(升序)的数组对比结果。原创 2025-11-06 23:38:23 · 201 阅读 · 0 评论 -
Typescript语言中通过get请求获取api.open-meteo.com网站的天气数据
摘要:本文介绍了如何使用TypeScript通过GET请求获取api.open-meteo.com网站的天气数据。示例代码使用node-fetch模块发送HTTP请求,包含设置经纬度参数、处理响应数据和错误捕获。文章详细说明了项目初始化、代码编译和运行步骤,并展示了预期的JSON格式输出结果。该方法可为TypeScript开发者提供一个简单有效的气象API调用解决方案,适用于Node.js环境。原创 2025-11-02 14:20:21 · 1103 阅读 · 0 评论 -
Go语言中通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了使用Go语言通过HTTP GET请求获取api.open-meteo.com网站天气数据的方法。代码示例展示了如何构建请求URL、发送GET请求、处理响应状态码、读取响应数据并解析JSON格式的天气信息。文章还提供了错误处理机制、运行步骤和注意事项,并演示了如何访问具体的天气字段数据。该实现仅使用Go标准库的net/http和encoding/json包,无需额外依赖,适合快速获取天气API数据的基本需求。原创 2025-11-01 22:13:26 · 1276 阅读 · 0 评论 -
Python中通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了如何使用 Python 的 requests 模块通过 GET 请求获取 api.open-meteo.com 网站的天气数据。代码示例演示了如何构建带参数的请求(包含纬度、经度等),处理200响应及异常情况,并解析返回的JSON格式天气数据(如温度、风速等)。文章还提供了安装依赖、运行脚本的具体步骤以及示例输出,适用于需要获取天气数据的Python开发者。原创 2025-11-01 21:42:43 · 688 阅读 · 0 评论 -
使用Java通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了使用Java发送HTTP GET请求获取api.open-meteo.com网站天气数据的方法。示例代码展示了如何通过HttpURLConnection类实现GET请求,包括URL构建、请求发送、响应处理和异常捕获。文章还提供了代码编译运行步骤、示例输出结果,并提及了JSON解析库的使用建议。对比作者先前用C++和Node.js实现的同功能文章,本文完整呈现了Java版本的具体实现过程,注意事项包括网络连接检查和POST请求的扩展方法。原创 2025-11-01 21:15:56 · 405 阅读 · 0 评论 -
Nodejs通过get请求获取api.open-meteo.com网站的天气数据
本文介绍了使用Node.js的http模块获取天气数据的方法。通过GET和POST请求调用api.open-meteo.com天气API,演示了请求配置、数据处理和错误处理的具体实现。GET请求通过URL参数传递经纬度信息获取天气数据;POST请求则通过请求体发送JSON数据。文中提供了完整的代码示例,并指出当API不支持POST请求时会返回错误信息,同时建议对复杂HTTP需求可使用axios等高级库。运行示例代码后,GET请求成功返回包含温度、风速等详情的天气数据。原创 2025-11-01 20:43:00 · 560 阅读 · 0 评论 -
C++中使用cpp-httplib和nlohmann_json库实现http请求获取天气数据
本文介绍了如何在C++中使用cpp-httplib和nlohmann_json库实现HTTP请求获取天气数据。cpp-httplib是一个轻量级的HTTP/HTTPS客户端/服务端库,而nlohmann_json是流行的JSON解析库。文章展示了如何通过这两个库向api.open-meteo.com发送请求获取天气预报数据,并解析返回的JSON格式响应,提取当前温度信息。示例代码演示了同步和异步两种请求方式,最终输出包含温度值和单位的天气信息。这种方法为C++开发者提供了简单高效的HTTP通信解决方案。原创 2025-10-31 22:39:03 · 712 阅读 · 0 评论 -
Visual Studio 2026 IDE发布了
微软发布Visual Studio 2026 IDE,提供Insiders预览版下载。该版本是继2022版后的重大更新,包含多个新特性改进。开发者可通过官网链接下载社区版、专业版和企业版,或观看YouTube发布派对视频了解详情。官方博客和发行说明提供了版本更新内容参考,支持开发者抢先体验最新功能。原创 2025-09-27 15:01:50 · 1503 阅读 · 1 评论 -
C++编写的经典贪吃蛇游戏
C++贪吃蛇游戏项目摘要 这是一个使用C++和Raylib图形库开发的经典贪吃蛇游戏项目,采用现代软件开发实践构建。项目特点包括: 核心功能: 支持WASD键控制 移动的食物增加游戏难度 3个不同布局的关卡 使用Raylib处理渲染和UI 采用Catch2进行单元测试 技术架构: 应用OOP设计模式(Command, GameLoop) 逻辑层与渲染层分离 清晰的目录结构 CMake构建自动化 使用Doxygen文档化 Clang格式化代码 开发流程: 采用Jira进行看板项目管理 GitHub分支工作流原创 2025-09-21 18:41:50 · 1233 阅读 · 0 评论 -
Ubuntu22.04中使用cmake安装abseil-cpp库
Abseil是Google开源的C++基础库,包含增强标准库功能的实用工具,被广泛应用于gRPC、Protobuf和TensorFlow等项目中。该项目支持Bazel和CMake构建系统,提供了算法、容器、调试、哈希、同步等20多个功能模块。文档详细介绍了两种构建方式,特别是通过CMake可生成静态库或动态库(通过设置BUILD_SHARED_LIBS选项)。Abseil采用Apache 2.0许可证,建议用户实时更新主分支或使用长期支持版本。Ubuntu 22.04环境下可通过指定C++17标准和测试选项原创 2025-09-03 21:47:37 · 1311 阅读 · 0 评论 -
使用AssemblyAI将音频数据转换成文本
摘要:本文介绍了如何使用AssemblyAI的API将音频文件转换为文本。首先需要注册账号获取API Key,然后提供了Python、JavaScript、PHP等多种语言的代码示例来调用其语音转文本服务。示例中展示了如何上传本地或远程音频文件,并通过轮询方式获取转换结果。虽然官方未提供Java示例,但其他语言的实现方式清晰展示了API的基本调用流程和参数设置。原创 2025-08-03 19:25:28 · 1169 阅读 · 0 评论 -
Ubuntu22.04中下载OpenHarmony源代码
Ubuntu22.04获取OpenHarmony源码指南 本文档详细介绍了在Ubuntu22.04系统中获取OpenHarmony开源操作系统代码的四种方法: 从码云仓库获取:适用于开发者参与贡献或学习源码,需注册gitee账号并配置git环境,通过repo工具下载最新代码。 从DevEco Marketplace获取:适合快速开发初学者,可下载定制化发行版,需先安装Node.js和hpm-cli工具。 从镜像站点获取:提供稳定版本下载,适合需要特定LTS版本的用户,可直接获取压缩包文件。 从GitHub仓原创 2025-08-01 20:41:35 · 1049 阅读 · 0 评论 -
C++23中的std::expected:异常处理
C++23引入的std::expected为错误处理提供了更优雅的解决方案。这个模板类允许函数返回期望值或错误值,避免了异常处理的复杂性。示例展示了如何使用std::expected处理除零错误:当除数为0时返回错误信息,否则返回计算结果。代码还演示了链式调用,通过and_then和or_else方法进行连续操作。相比传统的异常处理,std::expected提供了更类型安全、更直观的错误处理方式,使代码更加清晰易读。该特性特别适用于需要明确处理错误场景的场合,如数值计算、文件操作等。原创 2025-07-20 22:34:24 · 837 阅读 · 0 评论 -
内存越界访问导致C++ 程序崩溃并使用AddressSanitizer(ASan)工具定位
摘要:本文演示了一个C++程序因数组越界访问导致崩溃的案例,并展示了如何使用AddressSanitizer(ASan)工具定位问题。程序通过vector越界写入破坏内存,可能引发后续崩溃。使用ASan编译后(添加-fsanitize=address -g选项),运行时会精准报告堆缓冲区溢出错误,包括越界操作的具体行号(如nums[5]=100)和内存分配信息。ASan能有效检测内存越界、释放后使用等问题,显著提升调试效率。原创 2025-07-19 09:12:25 · 533 阅读 · 0 评论 -
C++23中的std::print和std::println
C++23引入了std::print和std::println函数,简化了格式化输出操作。这两个函数通过<print>头文件提供,其中println会自动添加换行符。相比传统cout和printf,它们提供了更简洁易读的语法和潜在的性能优势。示例展示了其基本用法,包括格式化输出和自定义类型格式化。在VS2022中需手动设置C++23标准才能使用这些新特性。这些改进使C++的I/O操作更接近现代语言如Python和Java的便利性。原创 2025-06-28 20:55:52 · 746 阅读 · 0 评论 -
使用 CMake 的典型 Linux 项目
摘要: 本文介绍了如何使用CMake构建典型Linux项目的实用指南。作者对比了Autotools和CMake,选择后者作为构建工具。文章详细讲解了项目结构设计、模块配置、依赖管理(包括内部模块和外部软件包)等关键环节。通过实际代码示例展示了ADD_EXECUTABLE、ADD_LIBRARY、TARGET_LINK_LIBRARIES等核心CMake命令的使用方法,特别强调了如何利用pkg-config工具处理非CMake注册的外部依赖。本文为开发者提供了简明实用的CMake入门指导翻译 2025-06-13 23:47:15 · 104 阅读 · 0 评论 -
C++11中的右值引用和完美转发
C++11中的右值引用和完美转发原创 2025-03-02 22:32:40 · 1092 阅读 · 0 评论 -
C++中std::move移动语义的使用
std::move 是 C++11 引入的一个标准库函数,它位于<utility>头文件中,主要作用是将左值转换为右值引用,从而能够触发移动语义,让资源从一个对象转移到另一个对象,而不是进行深拷贝。这样做可以避免不必要的资源分配和释放,提高程序性能,尤其是在处理大型对象或资源密集型对象时优势明显。原创 2025-03-02 11:13:00 · 1284 阅读 · 0 评论 -
Ubuntu22.04中使用CMake配置运行boost库示例程序
Ubuntu22.04中使用CMake配置运行boost库原创 2024-11-10 08:52:01 · 1001 阅读 · 0 评论 -
【Spring Boot & React】Spring Boot和React教程 完整版
在B站找到一个不错的SpringBoot和React的学习视频,作者是。值得仔细学习一下,特此记录。原创 2024-10-05 08:35:26 · 1095 阅读 · 0 评论 -
C++实现俄罗斯方块(Windows控制台版)
在油管上看到一个使用C++控制台编写的俄罗斯方块小游戏,200多行,B站上也有相关的讲解视频,非常不错,值得学习。CSDN博主,讲解得已经非常详细了,为此我就不赘余了。原创 2024-09-08 11:09:15 · 1020 阅读 · 0 评论 -
Ubuntu22.04编译报错:error while loading shared libraries: libtinfo.so.5:cannot open shared object file
Ubuntu22.04编译源码时找不到libtinfo5.so库原创 2024-05-25 08:49:18 · 1437 阅读 · 0 评论 -
在 C#和ASP.NET Core中创建 gRPC 客户端和服务器
gRPC是一个高性能的开源的通用RPC框架,由Google公司开发,支持常用的C++、Java、Python、C#/.Net、Go、Node、Dart、Kotlin、Object-C、PHP、Ruby等语言,采用作为数据交换格式,并且采用C++开发,支持Windows 、Linux、macOS跨平台开发。对于跨语言服务调用非常方便,只要使用protobuf定义接口协议,然后按照gRPC语言SDK调用即可。原创 2024-03-31 00:47:03 · 1875 阅读 · 6 评论 -
Windows中使用MySql.Data库将C# 接到 MySQL
在本文中,我演示了如何使用insertupdatedelete和select语句的简单示例将 C# 连接到 MySQL 并查询表。另外,由于它在 Internet 上并未广泛使用,因此我决定演示如何从 C# 应用程序备份和恢复 MySQL 数据库。翻译 2024-03-10 11:30:35 · 606 阅读 · 0 评论 -
Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库
在Windows中使用C#连接Mysql数据库比较简单,可以直接使用库,目前最新版本为:8.3.0。当然也可以结合和库一起使用,目前Dapper的最新版本为:2.1.35。是一款轻量级ORM工具,是一个简单的.NET对象映射器,在速度上几乎与使用原始ADO.NET数据读取器的速度一样快。ORM是一个对象关系映射器,它负责数据库和编程语言之间的映射。Dapper通过扩展IDbConnection提供一些有用的扩展方法去查询数据库,提供了一种简单、高效的方式来执行数据库查询、插入、更新和删除操作。原创 2024-03-09 14:32:34 · 2205 阅读 · 0 评论 -
PacketSender-用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序
是一款开源的用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序,作者为dannagle。使用Qt开发,并且跨平台,支持Windows、Linux、MacOS,本人亲自试过使用Qt5.14.2成功编译运行源代码,是用来学习Qt C++网络编程不错的示例程序。原创 2024-02-22 23:02:40 · 5151 阅读 · 1 评论 -
如何在 Windows 上安装 Angular:Angular CLI、Node.js 和构建工具指南
是用于初始化和使用Angular项目的官方工具。它使您免于复杂配置和构建工具(如 TypeScript、Webpack 等)的麻烦。安装后,您需要运行一个命令来生成一个项目,并运行另一个命令来使用本地开发服务器来运行您的应用程序。与当今大多数现代前端工具一样,构建在Node.js之上。Node.js是一种服务器技术,允许您在服务器上运行 JavaScript 并构建服务器端 Web 应用程序。但是,Angular是一种前端技术,因此即使您需要在开发计算机上安装Node.js,它也仅用于运行CLI。翻译 2024-02-15 11:42:33 · 589 阅读 · 0 评论 -
Python中使用opencv-python进行人脸检测
之前写过一篇的博客。以数字图像处理中经常使用的lena图像为例,如下图所示:使用OpenCV进行人脸检测十分简单,OpenCV官网给了一个Python人脸检测的示例程序,所在目录为D:\env_build\opencv4.9.0\opencv\sources\samples\python\tutorial_code\objectDetection\cascade_classifier\objectDetection.py。原创 2024-02-10 22:23:32 · 5557 阅读 · 7 评论 -
Python中使用opencv-python库进行颜色检测
之前写过一篇的博文,当然使用opencv-python库也可以实现。在Python中使用opencv-python库进行颜色检测非常简单,首选读取一张彩色图像,并调用函数函数将原图img转换成HSV图像imgHSV,再设置好HSV三个分量的上限和下限值,调用inRange函数将HSV色彩图像转换成掩码图,掩码图中只有黑白二值图像,从而达到颜色检测的目的。颜色检测通常可以用于物体检测和跟踪中,尤其在不同的图像和物体中根据特定的颜色去筛选出某个物体。通过学习油管博主的视频。原创 2024-02-08 18:04:16 · 1146 阅读 · 0 评论 -
C#中使用OpenCvSharp4绘制直线、矩形、圆、文本
继之前的和,将之前的Python和C++示例代码翻译成C#语言,很简单,还是借用库中的Line、Rectangle、Circle、PutText,值得一提的是以及库和的函数基本相同。原创 2024-02-03 08:20:59 · 1588 阅读 · 0 评论 -
VC++中使用OpenCV绘制直线、矩形、圆和文字
在VC++中使用OpenCV绘制直线、矩形、圆和文字非常简单,分别使用OpenCV中的line、rectangle、circle、putText这四个函数即可。下面的代码展示了在VC++中如何使用OpenCV绘制直线、矩形、圆和文字。原创 2024-02-03 00:06:15 · 1150 阅读 · 0 评论 -
Python中使用Opencv-python库绘制直线、矩形、圆、文本
在Python中使用绘制直线、矩形、圆、文本非常简单,分别使用到line、rectangle、circle、putText这几个函数,具体可以参考官方文档。原创 2024-02-02 22:59:57 · 1110 阅读 · 0 评论 -
C#使用OpenCvSharp4库读取电脑摄像头数据并实时显示
C#使用OpenCvSharp4库读取电脑摄像头数据并实时显示原创 2024-01-28 22:23:23 · 4975 阅读 · 0 评论 -
C#使用OpenCvSharp4库读取本地视频
C#使用OpenCvSharp4库读取本地视频原创 2024-01-28 22:11:34 · 1912 阅读 · 1 评论 -
C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀
C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀原创 2024-01-28 21:49:44 · 1747 阅读 · 0 评论 -
C#中使用OpenCvSharp4库读取本地图像并显示
是基于.NET 的 OpenCV 包装器,源代码是采用C和C++写的,目前对于C++和Python开发者相对来说比较友好,对于Python开发者而言官方提供了使用。首选我们使用Visual Studio 2022创建一个.Net控制台程序,然后安装安装包,我们在Visual Studio 2022中依次点击【项目】菜单->【管理 NuGet 程序包(N)】,如下面的Gif动态图所示:可以看到安装完。原创 2024-01-28 21:28:56 · 1791 阅读 · 0 评论 -
使用Opencv-python对图像进行缩放和裁剪
使用Opencv-python对图像进行缩放和裁剪原创 2024-01-27 00:25:10 · 839 阅读 · 0 评论 -
OpenCV-python中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀和腐蚀
OpenCV-python中5个基础函数:灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀原创 2024-01-27 00:10:49 · 410 阅读 · 0 评论
分享