当前位置: 首页 > article >正文

win10 c++ VsCode 配置PCL open3d并显示

win10 c++ VsCode配置PCL open3d并显示

  • 一、效果图
  • 二、配置步骤
    • 2.1 安装vscode
    • 2.2 pcl-open3d配置
    • 2.3 vscode中设置
  • 三、测试代码
  • 四、注意事项及后续

一、效果图

在这里插入图片描述

二、配置步骤

2.1 安装vscode

vscode下载链接
在这里插入图片描述
下载中文插件、c++相关插件
在这里插入图片描述

在这里插入图片描述

2.2 pcl-open3d配置

1)下载配置好的环境(pcl1.11 、open3d0.18)
pcl1.11
pcl下载
open3d-0.18
open3d c++下载
2)自己配置注意事项
pcl 配置
pcl已经博客很多,搜一下就行。
open3d配置
open3d 中fmt glew gluw等库可能需要自己重新编译生成lib,否则后续显示会有问题,可以参考我提供的资源。

2.3 vscode中设置

创建文件夹
随意创建pcl_open3d文件夹,我创建在桌面。
在这里插入图片描述

打开文件夹,并新建文件
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/fa19778df9284d079d5a5267bc61576b.png
先进入文件夹,后code .打开vscode
在这里插入图片描述
新建一个test.cpp文件
在这里插入图片描述

test.cpp分别测试open3d显示与pcl显示

/**PCL/open3d显示测试* @Gelou* 2025-3-16*/
#include <iostream>
#include <vector>
#include <string>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <open3d/Open3D.h>using namespace std;
int main()
{//open3d 显示点云open3d::geometry::PointCloud CurCloud;open3d::io::ReadPointCloud("1.pcd", CurCloud);cout<<"size:"<<CurCloud.points_.size()<<endl;open3d::visualization::Visualizer vis;vis.CreateVisualizerWindow("Open3D Point Cloud Viewer", 1024, 768);vis.AddGeometry(std::make_shared<open3d::geometry::PointCloud>(CurCloud));vis.Run();vis.DestroyVisualizerWindow();//pcl显示点云pcl::PointCloud<pcl::PointXYZRGB> cloud;pcl::io::loadPCDFile("1.pcd",cloud);cout<<"size:"<<cloud.size()<<endl;pcl::visualization::PCLVisualizer viewer("viewer");viewer.addPointCloud(cloud.makeShared(),"cloud");viewer.spin();return 0;
}

快捷键ctrl +shift +p进入编辑UI,选择cl.exe路径,设置X64的
在这里插入图片描述
在这里插入图片描述
随后,下图位置出现c_cpp_properties.json,设置如下:
在这里插入图片描述
我在这地方设置了pclopen3d 的路径

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","D:/PCL/PCL1.11.1/include/pcl-1.11","D:/PCL/PCL1.11.1/3rdParty/Boost/include/boost-1_74","D:/PCL/PCL1.11.1/3rdParty/Eigen/eigen3","D:/PCL/PCL1.11.1/3rdParty/FLANN/include","D:/PCL/PCL1.11.1/3rdParty/FLANN/include/flann","D:/PCL/PCL1.11.1/3rdParty/OpenNI2/Include","D:/PCL/PCL1.11.1/3rdParty/Qhull/include","D:/PCL/PCL1.11.1/3rdParty/vtk/include/vtk-8.2","D:/Open3D/include","D:/Open3D/include/open3d/3rdparty"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.19041.0","compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x86/cl.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-msvc-x64"}],"version": 4
}

快捷键ctrl +shift +p,输入task,点击第一个,随后生成task.json文件
在这里插入图片描述

我的task.json文件如下,配置了open3d和pcl路径与lib文件:

{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: cl.exe 生成活动文件","command": "cl.exe","args": ["/Zi","/EHsc","/MD",  // 显式指定动态运行时库"/I","D:/PCL/PCL1.11.1/include/pcl-1.11","/I","D:/PCL/PCL1.11.1/3rdParty/Eigen/eigen3","/I","D:/PCL/PCL1.11.1/3rdParty/Boost/include/boost-1_74","/I","D:/PCL/PCL1.11.1/3rdParty/FLANN/include","/I","D:/PCL/PCL1.11.1/3rdParty/FLANN/include/flann","/I","D:/PCL/PCL1.11.1/3rdParty/OpenNI2/Include","/I","D:/PCL/PCL1.11.1/3rdParty/Qhull/include","/I","D:/PCL/PCL1.11.1/3rdParty/vtk/include/vtk-8.2","/I","D:/Open3D/include","/I","D:/Open3D/include/open3d/3rdparty","/nologo","/Fe${fileDirname}\\${fileBasenameNoExtension}.exe","${file}","/link","/MACHINE:X64", // 强制指定 64 位架构"/LIBPATH:D:/Open3D/lib","glew32.lib","glew32s.lib","Open3D.lib","glfw3.lib","fmt.lib","/LIBPATH:D:/PCL/PCL1.11.1/lib","pcl_common.lib","pcl_features.lib","pcl_filters.lib","pcl_io.lib","pcl_io_ply.lib","pcl_kdtree.lib","pcl_keypoints.lib","pcl_ml.lib","pcl_octree.lib","pcl_outofcore.lib","pcl_people.lib","pcl_recognition.lib","pcl_registration.lib","pcl_sample_consensus.lib","pcl_search.lib","pcl_segmentation.lib","pcl_stereo.lib","pcl_surface.lib","pcl_tracking.lib","pcl_visualization.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/Boost/lib","libboost_atomic-vc142-mt-x64-1_74.lib","libboost_bzip2-vc142-mt-x64-1_74.lib","libboost_chrono-vc142-mt-x64-1_74.lib","libboost_container-vc142-mt-x64-1_74.lib","libboost_context-vc142-mt-x64-1_74.lib","libboost_contract-vc142-mt-x64-1_74.lib","libboost_coroutine-vc142-mt-x64-1_74.lib","libboost_date_time-vc142-mt-x64-1_74.lib","libboost_exception-vc142-mt-x64-1_74.lib","libboost_fiber-vc142-mt-x64-1_74.lib","libboost_filesystem-vc142-mt-x64-1_74.lib","libboost_graph-vc142-mt-x64-1_74.lib","libboost_graph_parallel-vc142-mt-x64-1_74.lib","libboost_iostreams-vc142-mt-x64-1_74.lib","libboost_locale-vc142-mt-x64-1_74.lib","libboost_log-vc142-mt-x64-1_74.lib","libboost_log_setup-vc142-mt-x64-1_74.lib","libboost_math_c99-vc142-mt-x64-1_74.lib","libboost_math_c99f-vc142-mt-x64-1_74.lib","libboost_math_c99l-vc142-mt-x64-1_74.lib","libboost_math_tr1-vc142-mt-x64-1_74.lib","libboost_math_tr1f-vc142-mt-x64-1_74.lib","libboost_math_tr1l-vc142-mt-x64-1_74.lib","libboost_mpi-vc142-mt-x64-1_74.lib","libboost_nowide-vc142-mt-x64-1_74.lib","libboost_numpy38-vc142-mt-x64-1_74.lib","libboost_prg_exec_monitor-vc142-mt-x64-1_74.lib","libboost_program_options-vc142-mt-x64-1_74.lib","libboost_python38-vc142-mt-x64-1_74.lib","libboost_random-vc142-mt-x64-1_74.lib","libboost_regex-vc142-mt-x64-1_74.lib","libboost_serialization-vc142-mt-x64-1_74.lib","libboost_stacktrace_noop-vc142-mt-x64-1_74.lib","libboost_stacktrace_windbg-vc142-mt-x64-1_74.lib","libboost_stacktrace_windbg_cached-vc142-mt-x64-1_74.lib","libboost_system-vc142-mt-x64-1_74.lib","libboost_test_exec_monitor-vc142-mt-x64-1_74.lib","libboost_thread-vc142-mt-x64-1_74.lib","libboost_timer-vc142-mt-x64-1_74.lib","libboost_type_erasure-vc142-mt-x64-1_74.lib","libboost_unit_test_framework-vc142-mt-x64-1_74.lib","libboost_wave-vc142-mt-x64-1_74.lib","libboost_wserialization-vc142-mt-x64-1_74.lib","libboost_zlib-vc142-mt-x64-1_74.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/FLANN/lib","flann.lib","flann_cpp.lib","flann_cpp_s.lib","flann_s.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/OpenNI2/Lib","OpenNI2.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/Qhull/lib","qhull.lib","qhullcpp.lib","qhullstatic.lib","qhullstatic_r.lib","qhull_p.lib","qhull_r.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/VTK/lib","QVTKWidgetPlugin.lib","vtkChartsCore-8.2.lib","vtkCommonColor-8.2.lib","vtkCommonComputationalGeometry-8.2.lib","vtkCommonCore-8.2.lib","vtkCommonDataModel-8.2.lib","vtkCommonExecutionModel-8.2.lib","vtkCommonMath-8.2.lib","vtkCommonMisc-8.2.lib","vtkCommonSystem-8.2.lib","vtkCommonTransforms-8.2.lib","vtkDICOMParser-8.2.lib","vtkDomainsChemistry-8.2.lib","vtkDomainsChemistryOpenGL2-8.2.lib","vtkdoubleconversion-8.2.lib","vtkexodusII-8.2.lib","vtkexpat-8.2.lib","vtkFiltersAMR-8.2.lib","vtkFiltersCore-8.2.lib","vtkFiltersExtraction-8.2.lib","vtkFiltersFlowPaths-8.2.lib","vtkFiltersGeneral-8.2.lib","vtkFiltersGeneric-8.2.lib","vtkFiltersGeometry-8.2.lib","vtkFiltersHybrid-8.2.lib","vtkFiltersHyperTree-8.2.lib","vtkFiltersImaging-8.2.lib","vtkFiltersModeling-8.2.lib","vtkFiltersParallel-8.2.lib","vtkFiltersParallelImaging-8.2.lib","vtkFiltersPoints-8.2.lib","vtkFiltersProgrammable-8.2.lib","vtkFiltersSelection-8.2.lib","vtkFiltersSMP-8.2.lib","vtkFiltersSources-8.2.lib","vtkFiltersStatistics-8.2.lib","vtkFiltersTexture-8.2.lib","vtkFiltersTopology-8.2.lib","vtkFiltersVerdict-8.2.lib","vtkfreetype-8.2.lib","vtkGeovisCore-8.2.lib","vtkgl2ps-8.2.lib","vtkglew-8.2.lib","vtkGUISupportQt-8.2.lib","vtkGUISupportQtOpenGL-8.2.lib","vtkGUISupportQtSQL-8.2.lib","vtkhdf5-8.2.lib","vtkhdf5_hl-8.2.lib","vtkImagingColor-8.2.lib","vtkImagingCore-8.2.lib","vtkImagingFourier-8.2.lib","vtkImagingGeneral-8.2.lib","vtkImagingHybrid-8.2.lib","vtkImagingMath-8.2.lib","vtkImagingMorphological-8.2.lib","vtkImagingSources-8.2.lib","vtkImagingStatistics-8.2.lib","vtkImagingStencil-8.2.lib","vtkInfovisCore-8.2.lib","vtkInfovisLayout-8.2.lib","vtkInteractionImage-8.2.lib","vtkInteractionStyle-8.2.lib","vtkInteractionWidgets-8.2.lib","vtkIOAMR-8.2.lib","vtkIOAsynchronous-8.2.lib","vtkIOCityGML-8.2.lib","vtkIOCore-8.2.lib","vtkIOEnSight-8.2.lib","vtkIOExodus-8.2.lib","vtkIOExport-8.2.lib","vtkIOExportOpenGL2-8.2.lib","vtkIOExportPDF-8.2.lib","vtkIOGeometry-8.2.lib","vtkIOImage-8.2.lib","vtkIOImport-8.2.lib","vtkIOInfovis-8.2.lib","vtkIOLegacy-8.2.lib","vtkIOLSDyna-8.2.lib","vtkIOMINC-8.2.lib","vtkIOMovie-8.2.lib","vtkIONetCDF-8.2.lib","vtkIOParallel-8.2.lib","vtkIOParallelXML-8.2.lib","vtkIOPLY-8.2.lib","vtkIOSegY-8.2.lib","vtkIOSQL-8.2.lib","vtkIOTecplotTable-8.2.lib","vtkIOVeraOut-8.2.lib","vtkIOVideo-8.2.lib","vtkIOXML-8.2.lib","vtkIOXMLParser-8.2.lib","vtkjpeg-8.2.lib","vtkjsoncpp-8.2.lib","vtklibharu-8.2.lib","vtklibxml2-8.2.lib","vtklz4-8.2.lib","vtklzma-8.2.lib","vtkmetaio-8.2.lib","vtkNetCDF-8.2.lib","vtkogg-8.2.lib","vtkParallelCore-8.2.lib","vtkpng-8.2.lib","vtkproj-8.2.lib","vtkpugixml-8.2.lib","vtkRenderingAnnotation-8.2.lib","vtkRenderingContext2D-8.2.lib","vtkRenderingContextOpenGL2-8.2.lib","vtkRenderingCore-8.2.lib","vtkRenderingFreeType-8.2.lib","vtkRenderingGL2PSOpenGL2-8.2.lib","vtkRenderingImage-8.2.lib","vtkRenderingLabel-8.2.lib","vtkRenderingLOD-8.2.lib","vtkRenderingOpenGL2-8.2.lib","vtkRenderingQt-8.2.lib","vtkRenderingVolume-8.2.lib","vtkRenderingVolumeOpenGL2-8.2.lib","vtksqlite-8.2.lib","vtksys-8.2.lib","vtktheora-8.2.lib","vtktiff-8.2.lib","vtkverdict-8.2.lib","vtkViewsContext2D-8.2.lib","vtkViewsCore-8.2.lib","vtkViewsInfovis-8.2.lib","vtkViewsQt-8.2.lib","vtkzlib-8.2.lib"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$msCompile"],"group": {"kind": "build","isDefault": true},"detail": "编译器: cl.exe"}]
}

添加配置
在这里插入图片描述

在这里插入图片描述
生成launch.json文件在这里插入图片描述

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(Windows) 启动","type": "cppvsdbg","request": "launch","program": "输入程序名称,例如 ${workspaceFolder}/a.exe","args": [],"stopAtEntry": true,"cwd": "${fileDirname}","environment": [],"console": "externalTerminal"}]
}

三、测试代码

选择test.cpp界面。快捷键ctrl +shift +B,点击生成,终端生成完成即可。

在这里插入图片描述
点击运行,分别显示open3d 与pcl环境下的点云显示。后续就可以进行二次开发了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、注意事项及后续

open3d 的fmt opengl相关的库需要自己先编译一下,git上不带。cmake配置应该更简单一点,但是我对cmake不太熟悉,后续在更新吧。

学习pcl open3d相关开发,关注专栏: 基于PCL、Open3d、Easy3d 、VTK等常见开源库的QT开发

相关文章:

win10 c++ VsCode 配置PCL open3d并显示

win10 c VsCode配置PCL open3d并显示 一、效果图二、配置步骤2.1 安装vscode2.2 pcl-open3d配置2.3 vscode中设置 三、测试代码四、注意事项及后续 一、效果图 二、配置步骤 2.1 安装vscode vscode下载链接 下载中文插件、c相关插件 2.2 pcl-open3d配置 1&#xff09;下载…...

Vala 开发环境搭建

介绍 Vala 是一种使用现代高级抽象的编程语言&#xff0c;与用 C 语言编写的应用程序和库相比&#xff0c;没有施加额外的运行时要求&#xff0c;也不需要使用不同的 ABI。 Vala 使用 GObject 类型系统&#xff0c;并具有额外的代码生成例程&#xff0c;使面向 GNOME 堆栈变得简…...

【网页】自制流光卡片

概述 小红书有个博主自己搞的笔记排版工具叫“流光卡片”&#xff0c;类似的还有个Markdown排版工具叫MD2Card。 我这个版本类似&#xff0c;但是自己写的东西&#xff0c;控制性更好。 初期就写了个静态页面&#xff0c;后期结合Godot快速生成&#xff0c;并可能结合JS库&a…...

【数据结构】栈与队列:基础 + 竞赛高频算法实操(含代码实现)

什么是栈&#xff1f;什么是队列&#xff1f; 什么是先进后出&#xff1f;什么是先进先出&#xff1f; 了解基础之后&#xff0c;又如何用来写算法题&#xff1f; 带着这些疑问&#xff0c;让我带领你&#xff0c;走进栈与队列的世界 栈与队列 栈&#xff1a; 1、栈的基本…...

CSP-J/S冲奖第18天:真题解析

解题步骤 读取输入&#xff1a;首先读取整数n&#xff0c;然后读取n个正整数并存储在一个数组或容器中。 排序数组&#xff1a;对数组进行排序&#xff0c;以便后续使用双指针法高效查找。 遍历数组&#xff1a;对于每个数target&#xff0c;检查是否存在另外两个不同的数a和…...

【linux】虚拟机执行sudo yum isntall perl报错 could not retrieve mirrorlist htt:

项目场景&#xff1a; 提示&#xff1a;虚拟机安装拓展包&#xff0c;sudo yum install perl Virtualbox 在不安装增强功能扩展的情况下, 无法自适应分辨率和共享剪切板等操作 问题描述 原因分析&#xff1a; 提示&#xff1a;这里填写问题的分析&#xff1a; 出现这个错误是因…...

旅游类小程序界面设计

产品概述 艾啦游是一款互联网旅游类小程序&#xff0c;致力于国内精品旅游&#xff0c;以及拥有自由行、专属热榜单、出行攻略等诸多功能&#xff0c;汇聚了许多国内的人气景点&#xff0c;与诸多城市的酒店也保持合作&#xff0c;打造一体式旅行服务&#xff0c;更有不断上新…...

DQN 玩 2048 实战|第三期!优化网络,使用GPU、Env奖励优化

视频讲解&#xff1a; DQN 玩 2048 实战&#xff5c;第三期&#xff01;优化网络&#xff0c;使用GPU、Env奖励优化 1. 仅考虑局部合并奖励&#xff1a;目前的奖励只设置为合并方块时获得的分数&#xff0c;只关注了每一步的即时合并收益&#xff0c;而没有对最终达成 2048 这个…...

【python】http post 在body中传递json数据 以发送

http post 在body中传递json数据 以发送&#xff0c;json的格式非常重要这里要传递json对象&#xff0c;而不是一个json字符串 传递post一个 JSON 字符串 是ok的 是的&#xff0c; {"rsource_rhythm_action_list": {"name": "AI_\\u6708\\u4eae\\u…...

Linux错误(2)程序触发SIGBUS信号分析

Linux错误(2)之SIGBUS错误分析 Author: Once Day Date: 2025年3月12日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: Linux实践记录_Once_day的博…...

【Halcon】灰度不均解决方案

目录 1、平场校正 2、形态学背景估计 3、频域滤波抑制低频光照不均 4、动态局部自适应 1、平场校正 原理:通过白场(White Image)和黑场(Black Image)图像,手动计算校正系数 * 读取图像 read_image(ImageRaw, raw_image) // 原始图像 read_image(ImageWhite, …...

滑动窗口算法详解:从入门到精通

目录 引言 1. 滑动窗口算法简介 2. 滑动窗口的基本思想 3. 滑动窗口的应用场景 3.1 最大子数组和 3.2 最小覆盖子串 3.3 最长无重复字符子串 4. 滑动窗口的实现步骤 5. 滑动窗口的代码示例 6. 滑动窗口的优化技巧 6.1 使用哈希表记录字符频率 6.2 使用双指针维护窗口…...

JAVA数据库技术(一)

JDBC 简介 JDBC&#xff08;Java Database Connectivity&#xff09;是Java平台提供的一套用于执行SQL语句的Java API。它允许Java程序连接到数据库&#xff0c;并通过发送SQL语句来查询、更新和管理数据库中的数据。JDBC为不同的数据库提供了一种统一的访问方式&#xff0c;使…...

LightGBM + TA-Lib A股实战进阶:Optuna调优与Plotly可视化详解

LightGBM TA-Lib A 股实战进阶&#xff1a;Optuna 调优与 Plotly 可视化详解 本文系统讲解了 LightGBM 在 A 股市场的应用&#xff0c;涵盖模型构建、Optuna 参数调优及 Plotly 可视化。通过实战案例&#xff0c;帮助读者全面掌握相关技术&#xff0c;提升在金融数据分析与预测…...

第二:go 链接mysql 数据库

mac  mysql 安装 的步骤 mysql  安装 配制&#xff1a; https://juejin.cn/post/7454870544929472550 mac brew 如何安装mysql数据库 要在Mac上使用Homebrew安装MySQL数据库&#xff0c;请按照以下步骤操作&#xff1a;步骤 1: 安装Homebrew 如果你还没有安装Homebrew&a…...

QListView、QListWidget、QTableView和QTableWidget

一、概念 在Qt框架中&#xff0c;QListView、QListWidget、QTableView和QTableWidget都是用于显示列表或表格数据的控件。 QListView是一个基于模型-视图架构的控件&#xff0c;用于展示列表形式的数据。它本身并不存储数据&#xff0c;而是依赖于一个QAbstractListModel或其子…...

[贪心算法]-最大数(lambda 表达式的补充)

1.解析 我们一般使用的排序比较大小都是 a>b 那么a在b的前面 ab 无所谓 a<b a在b的后面 本题的排序则是 ab>ba 那么a在b的前面 abba 无所谓 ab<ba a在b的后面 2.代码 class Solution { public:string largestNumber(vector<int>& nums) {//1.先把所有…...

C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷二)

目录 1. 数组名与地址 2. 指针访问数组 3.一维数组传参本质 4.二级指针 5. 指针数组 6. 指针数组模拟二维数组 1. 数组名与地址 我们先看下面这个代码&#xff1a; int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[0]; 这里我们使用 &arr[0] 的方式拿到了数…...

python实现简单的图片去水印工具

python实现简单的图片去水印工具 使用说明&#xff1a; 点击"打开图片"选择需要处理的图片 在图片上拖拽鼠标选择水印区域&#xff08;红色矩形框&#xff09; 点击"去除水印"执行处理 点击"保存结果"保存处理后的图片 运行效果 先简要说明…...

使用dify+deepseek部署本地知识库

使用difydeepseek部署本地知识库 一、概述二、安装windows docker desktop1、确认系统的Hyper-v功能正常启用2、docker官网下载安装windows客户端3、安装完成后的界面如下所示 三、下载安装ollama四、部署本地deepseek五、本地下载部署dify5.1 下载dify的安装包5.2 将dify解压到…...

(C语言)指针与指针数组的使用教学(C语言基础教学)(指针教学)

指针是什么&#xff1f;指针怎么用&#xff1f;指针数组又是什么&#xff1f;&#xff1f;&#xff1f; 想必大家刚学C语言的时候对指针可谓是十分头疼了&#xff0c;听也听不懂&#xff0c;用也不会用 下面我来用我的理解来教你指针怎么用&#xff0c;还你一个脑子 1.指针的…...

【算法day13】最长公共前缀

最长公共前缀 https://leetcode.cn/problems/longest-common-prefix/submissions/612055945/ 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 class Solution { public:string longestCommonPrefix(vector<string&g…...

Effective C++ 剖析(条款1~9)

目录 条款01 视C为一个语言联邦(C由几部分组成) 条款02 尽量以 const,enum,inline 替换 #define 条款03 尽量使用 const 条款04 确定对象再使用前已经被初始化 条款05 了解c默默编写并调用那些函数 条款06 若不想使用编译器自动生成的函数就该明确拒绝 条款07 为多态基类…...

【Maven-plugin】有多少官方插件?

之前疏理了容器底层原理&#xff0c;现在回归主题,在阅读 next-public时发现 parent 将从多基础插件集成到 parent 仓库中单独维护&#xff0c;数量众多&#xff0c;故在此将所有插件分类整理。以达观其全貌&#xff0c;心中有数。 以下是 Apache Maven 官方维护的核心插件列表…...

Java高频面试之集合-13

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;为什么 hash 函数能降哈希碰撞&#xff1f; 哈希函数通过以下核心机制有效降低碰撞概率&#xff0c;确保不同输入尽可能映…...

RGV调度算法(三)--遗传算法

1、基于时间窗 https://wenku.baidu.com/view/470e9fd8b4360b4c2e3f5727a5e9856a57122693.html?_wkts_1741880736197&bdQuery%E7%8E%AF%E7%A9%BF%E8%B0%83%E5%BA%A6%E7%AE%97%E6%B3%95 2.2019年MathorCup高校数学建模挑战赛B题 2019-mathorcupB题-环形穿梭机调度模型&a…...

【数学建模】一致矩阵的应用及其在层次分析法(AHP)中的性质

一致矩阵在层次分析法(AHP)中的应用与性质 在层次分析法(AHP)中&#xff0c;一致矩阵是判断矩阵的一种理想状态&#xff0c;它反映了决策者判断的完全合理性和一致性&#xff0c;也就是为了避免决策者认为“A比B重要&#xff0c;B比C重要&#xff0c;但是C又比A重要”的矛盾。…...

YOLOv8轻量化改进——Coordinate Attention注意力机制

现在针对YOLOv8的架构改进越来越多&#xff0c;今天尝试引入了Coordinate Attention注意力机制以改进对小目标物体的检测效率。 yolov8的下载和安装参考我这篇博客&#xff1a; 基于SeaShips数据集的yolov8训练教程_seaships处理成yolov8-CSDN博客 首先我们可以去官网找到CA注…...

php开发转go的学习计划及课程资料信息

以下是为该课程体系整理的配套教材和教程资源清单,包含书籍、视频、官方文档和实战项目资源,帮助你系统化学习: Go语言学习教材推荐(PHP开发者适配版) 一、核心教材(按学习阶段分类) 1. 基础语法阶段(阶段一) 资源类型名称推荐理由链接/获取方式官方教程Go语言之旅交…...

解释 TypeScript 中的枚举(enum),如何使用枚举定义一组常量?

枚举&#xff08;Enum&#xff09;​ 是 TypeScript 中用于定义一组具名常量的核心类型&#xff0c;通过语义化的命名提升代码可读性&#xff0c;同时利用类型检查减少低级错误。 以下从定义方式、使用建议、注意事项三方面深入解析。 一、枚举的定义方式 1. 数字枚举 特性&…...