
C++
C++
Jackilina_Stone
在职算法工程师,我们一起努力学习吧!学无止境,加油加油!!!
展开
-
【C/C++】管道(pipe)和 pthread_sigmask介绍
管道(pipe)pthread_sigmask原创 2025-03-10 19:07:59 · 397 阅读 · 0 评论 -
『C/C++』C库函数 - snprintf()
C库函数 - snprintf()原创 2024-10-11 17:30:44 · 530 阅读 · 0 评论 -
『C/C++』整型和字符串相互转换
『C/C++』整型和字符串相互转换原创 2024-09-19 12:25:05 · 452 阅读 · 0 评论 -
【C++版Opencv】【Ubuntu】VScode配置Opencv
1 安装基本工具sudo apt install -y g++sudo apt install -y cmakesudo apt install -y makesudo apt install -y wget unzip2 安装opencv依赖的库sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev lib原创 2022-05-18 20:14:39 · 3702 阅读 · 6 评论 -
【C++版Opencv】【Windows】opencv读取视频流:VideoCapture
1 获取指定路径下的video代码:#include<opencv2/imgcodecs.hpp>#include<opencv2/highgui.hpp>#include<opencv2/imgproc.hpp>#include<iostream>using namespace std;using namespace cv;void main() { string path = "E:\\data\\test.mp4"; Vid原创 2022-05-18 02:11:36 · 1372 阅读 · 0 评论 -
【C++版opencv】【Ubuntu】卸载Opencv
源码安装的opencv卸载方式:1 cd 到安装opencv的build目录,进入build目录执行卸载操作。sudo make uninstallcd ..rm -r build2sudo rm -rf /usr/local/share/opencv*sudo rm -rf /usr/local/include/opencv*sudo rm -rf /usr/local/lib/libopencv_*sudo rm -rf /usr/local/lib/cmake/op.....原创 2022-05-23 18:26:15 · 1818 阅读 · 2 评论 -
【C++版Opencv】【Windows】VS2019 配置 OpenCV
1Visual Studio下载下载地址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器Visual Studio 开发工具和服务让任何开发人员在任何平台和语言的应用开发都更加轻松。 随时随地免费使用代码编辑器或 IDE 进行开发。https://visualstudio.microsoft.com/zh-hans/下载社区版Community20222 安装双击“VisualStudioSetup.exe”点击“继续”,等待一会儿。工作负..原创 2022-05-18 00:21:18 · 768 阅读 · 0 评论 -
【面试】 C/C++面试题
C/C++面试题原创 2022-12-05 23:26:10 · 358 阅读 · 0 评论 -
【C++】UDP通信:客户端向服务端发送消息并接收服务端回应的消息
(1)UDP通信是无连接的,因此不需要connect操作。(2)UDP通信过程需要指定数据接收端的IP和端口。(3)UDP不对收到的数据进行排序。(4)UDP对接收到的数据报不回复确认信息。(5)如果发生了数据丢失,不会丢一半,会全部丢失。原创 2023-08-28 17:03:37 · 1205 阅读 · 0 评论 -
【C++】UDP通信,实现文件的传输
UDP通信是无连接的,因此不需要建立连接 ,不需要进行 connect操作。UDP通信过程需要指定数据接收端的IP和端口。UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息。UDP对接收到的数据报不回复确认信息,发送端是不知道数据是否被正确接收的。如果发生了数据丢失,不存在丢一半的情况,会全部丢失。原创 2023-08-22 18:13:15 · 862 阅读 · 0 评论 -
【C++】写一个函数实现系统时间与输入时间进行比较
时间比较函数:输入为字符串2023-7-28,将字符串分解为年、月、日信息。获取系统时间2023-7-24,然后将输入时间和系统时间进行比较,输出比较结果。原创 2023-07-27 08:40:57 · 723 阅读 · 0 评论 -
【C++】Eigen库的使用
1 Matrix类Eigen库中的Matrix类是一个基类,所有的矩阵以及向量的都是该类的对象,Vector只是一种特殊的矩阵。Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime, int Options = 0, int MaxRowsAtCompileTime = RowsAtCompileTime, int MaxColsAtComp......原创 2022-06-30 19:53:34 · 450 阅读 · 0 评论 -
【C++】指定的几个文件压缩成zip
将testfile文件夹下的1.doc、2.doc和1.txt压缩为Newtest.zip文件。-x 后面接着文件是要排除的文件。(2)解决方式:apt-get install zip。(1)报错zip: command not found。使用命令行的方式,将指定的几个文件压缩成zip文件。原创 2023-04-06 09:14:48 · 1024 阅读 · 0 评论 -
【C++】AddressSanitizer的作用?
原创 2023-03-08 12:16:40 · 705 阅读 · 0 评论 -
【C++】将指定的内容写进txt并保存
【代码】【C++】将指定的内容写进txt并保存。原创 2023-01-09 11:46:19 · 809 阅读 · 0 评论 -
【C++】生成指定大小的raw数据
【代码】【C++】生成指定大小的raw数据。原创 2023-01-09 11:43:46 · 259 阅读 · 0 评论 -
【C++】【ubuntu】获取指定文件的绝对路径
【代码】【C++】【ubuntu】获取指定文件的绝对路径。原创 2023-01-09 11:41:13 · 1081 阅读 · 0 评论 -
【C++】程序如何执行shell命令并自动输入yes
背景:C++程序如何执行shell命令?有的命令启动后,需要输入yes后,才能继续运行?这个问题如何解决呢?原创 2022-12-25 08:49:28 · 1277 阅读 · 0 评论 -
【C++】gflags的使用
gflags是google开源的一套命令行参数解析工具。原创 2022-12-25 08:43:02 · 148 阅读 · 0 评论 -
【C++】使用yaml-cpp操作yaml文件
说明: yaml-cpp 默认构建的是静态库,就是 .a 文件,如果想构建动态库,就需要在 cmake 时指定,如上。test.yaml中的内容要使用空格,不要用Tab键。(1)cd 到yaml-cpp下载的目的路径。例如:cd /home/test。(4)创建build文件夹。原创 2022-12-25 08:36:26 · 1428 阅读 · 0 评论 -
【python】删除远程服务器的某些文件
背景🎈🎈🎈:判断远程服务器指定路径下是否有test文件夹,如果有,遍历文件夹下的所有文件,删除文件名字中有"data"字符串的所有文件。代码如下:import paramikoimport statdef run(host, port, username, password): ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy)原创 2022-11-09 18:01:02 · 1466 阅读 · 1 评论 -
【C++】map的使用 报错:Segmentation fault (core dumped)
背景🎈🎈🎈:test为map,要删除test中key为“happy”的键值对。代码如下:std::map<string, uint32_t>::iterator it;for ( it= test.begin(); it!= test.end(); ++it) { if (strcmp(“happy”, (it->first).c_str()) == 0) { test.erase(it); }}报错😱😱😱:Seg原创 2022-11-09 17:53:41 · 2634 阅读 · 0 评论 -
【C++】C++调python:命令行方式(带参数)
1 call test.py内容如下:import argparsedef add(a, b): print(a + b) passif __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--a', type=str, default=0) parser.add_argument('--b', type=str, default=0)原创 2022-11-03 19:17:20 · 557 阅读 · 0 评论 -
【C++】C++调用python:命令行方式
代码如下:#include <iostream>#include <string>#include <stdio.h>#include<vector>using namespace std;int main(){ string finalCmd = "python3 /home/test/testProjects/run.py"; vector<string> out_info; FILE *fp = po原创 2022-11-02 18:32:53 · 878 阅读 · 1 评论 -
【C++】C++调用Python
实现c++调用py文件的函数。举例如下🐯:1 CMakeLists.txt🐯cmake_minimum_required(VERSION 3.22)project(Test)set(CMAKE_CXX_STANDARD 14)set(PYTHON_INCLUDE_DIRS "/home/test/anaconda3/envs/call/include/python3.6m/")INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})link_directorie原创 2022-11-01 19:04:43 · 527 阅读 · 0 评论 -
【C++】图片转byte
1 main.cpp 代码如下:#include <iostream>#include <vector>#include <cstring>#include "opencv2/opencv.hpp"using namespace std;uint8_t* matToBytes(cv::Mat image){ int size = image.total() * image.elemSize(); uint8_t* bytes =原创 2022-08-24 11:54:45 · 1948 阅读 · 0 评论 -
【C++】遍历指定路径下的所有文件
系统:Ubuntu20.04C++ 141 代码如下:#include <iostream>#include <dirent.h>#include <vector>#include <cstring>using namespace std;//遍历指定路径下的所有文件,将文件的路径存于vector中void GetFileNames(string path,vector<string>& filenames){原创 2022-08-24 22:41:34 · 877 阅读 · 0 评论 -
【C++】从文件获取json信息
Ubuntu 20.04IDE Clion(1)test.json文件的内容:{ "date": "2022.8.31", "name": "Rose", "age": 24, "Number": 100}(2)main.cpp#include <fstream>#include <iostream>#include <json/json.h>#include <map>using namespace std;...原创 2022-08-30 18:31:26 · 1125 阅读 · 0 评论 -
【c++】向远程服务器传输文件实现
(1) 安装sshpasssudo apt-get install sshpass(2) 说明通过sshpass加scp来实现传输文件到服务器。参数StrictHostKeyChecking=no的作用是免输入yes。命令:sshpass -p \"密码" scp 文件路径 root@IP:/路径(3) main.cpp#include <iostream>int main() { system("sshpass -p \"123456\" scp /home...原创 2022-08-31 18:51:06 · 1514 阅读 · 0 评论 -
【C++】根据字符切割字符串
1代码如下:#include <string>#include <vector>#include <iostream>using namespace std;void StrSplit(string str_in, const char split_c, vector<string>& str_results){ if (str_in == ""){ cout << "error : str原创 2022-09-01 19:00:38 · 616 阅读 · 0 评论 -
【C++】map的使用
1 map简介map是STL的一个关联容器,以键值对存储的数据。每个关键字在map中只能出现一次,关键字不能修改,值可以修改。使用的时候,需要引入头文件 #include<map>2 map 插入数据map<uint32_t, string> test_map;test_map.insert({1, "Jack"});test_map.insert({2, "Rose"});3 map 删除数据test_map.erase(2..原创 2022-08-10 22:22:45 · 759 阅读 · 2 评论 -
【C++】std::atomic
原子操作:指”不可分割的操作“。一个操作的状态要么就是未执行, 要么就是已完成。 在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是确保了在同一时刻只有唯一的线程对这个资源进行访问。 原子操作更加接近底层,因而效率更高。std::atomic_bool 和 std::atomic_int。std::atomic 写(存储)操作是通过store来完成的。例如:std::atomic_int Test_Count;......原创 2022-06-28 21:50:29 · 1090 阅读 · 0 评论 -
【C++】lock_guard用法
lock_guard:创建时加锁,析构时解锁。作用:为了防止在线程使用mutex加锁后异常退出导致死锁的问题,建议使用lock_guard代替mutex。lock_guard的构造函数: explicit lock_guard (mutex_type& m); lock_guard类通过在对象构造的时候对mutex进行加锁,当对象离开作用域时自动解锁,从而避免加锁后没有解锁的问题。 lock_guard不能在中途解锁,只能通过析构时解锁。 lock_gu......原创 2022-06-28 21:38:37 · 9463 阅读 · 4 评论 -
【C++】自旋锁
与互斥锁的相比,在获取锁失败的时候不会使得线程阻塞而是一直自旋尝试获取锁。当线程等待锁的时候,CPU不能做其他事情,而是一直处于轮询忙等的状态,直到获取这个锁为止 。 因此,自旋锁是比较耗费CPU的。```c++std::atomic_flag lock = ATOMIC_FLAG_INIT;void test(){ while (lock.test_and_set(std::memory_order_acquire)) {} //............原创 2022-06-28 21:26:40 · 1374 阅读 · 0 评论 -
【Ubuntu】LD_PRELOAD用法
LD_PRELOAD用法 LD_PRELOAD,是个环境变量,用于动态库的加载,它可以影响程序的运行时的链接(Runtime linker),它允许定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。动态库加载的优先级最高。一般情况下,其加载顺序为: LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib 程序中经常要调用一些外部库的函数,以mall......原创 2022-06-24 22:26:59 · 1495 阅读 · 0 评论 -
【Ubuntu】安装eigen
1 apt方式:sudo apt install libeigen3-devsudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include2 源码安装:地址:http://eigen.tuxfamily.org/index.php?title=Main_Page版本3.4.0地址:https://gitlab.com/libeigen/eigen/-/releases/3.4.0(1)安装 cd eigen3文件夹 mkdi...原创 2022-06-13 18:29:34 · 992 阅读 · 0 评论 -
【Ubuntu】安装numcpp
1 从Github克隆NumCppcd <NUMCPP_REPO_PATH>git clonehttps://github.com/dpilger26/NumCpp.git2 buildcd NumCppmkdir buildcd buildcmake ..3 sudo cmake --build . --target install4 numcpp 依赖 boosthttps://boostorg.jfrog.io/artifactory/main/re.原创 2022-05-24 18:33:18 · 502 阅读 · 0 评论 -
【Ubuntu】Ubuntu编译安装jsoncpp
Ubuntu编译安装jsoncpp1 安装sconsScons是一个开放源码、以Python语言编码的自动化构建工具。scons类似cmake。可用来替代make编写复杂的makefile。scons是跨平台的。scons官网SCons: https://scons.org/(1)wget http://prdownloads.sourceforge.net/scons/scons-2.2.0.tar.gz(2)解压tar zxvf scons-2.2.0.tar.gz(3)安装cd s.原创 2022-05-26 19:55:45 · 994 阅读 · 0 评论