
C++
C++
强化学习曾小健
"强化学习曾小健2、强化学习曾小健3、我是机器人曾小健具身"都是该号副号。优快云全站80强博客、总近480w+浏览。AI生成式技术,计算机博士;llama3、Baichuan2、Qwen、GLM-4等等项目贡献人(ArtificialZeng)。这个博客的主题主要是强化学习技术、AI生成式技术、大模型多模态技术、机器人具身智能控制技术、机器/深度学习论文或科研前沿、GNN图神经网络、神经网络,包括人工神经网络和生物神经网络,及其大脑演化,智能和认知的产生,通用人工智能;
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++之父Bjarne Stroustrup:我会为全球数十亿行 C++ 代码带来一个崭新的解决方案
(“我的理想是像 Profiles Light 这样的东西,它提供了配置文件的大部分保证,但没法大包大揽,因为静态分析器还无法做到这一点。Stroustrup 又切回了前面的幻灯片,也就是那张标题为“安全不仅仅是类型安全”的幻灯片,强调了资源泄漏、溢出、内存损坏、计时错误、并发错误、终止错误——当然,还有类型错误。外包给 C 或 C++”,用这种办法来暂时逃避使用它们的语言来访问硬件资源甚至操作系统(通常是用 C 语言编写的),乃至“可信代码”的需求,这些代码实际上可能非常古老,隐藏在外部库中……原创 2024-01-04 23:20:19 · 945 阅读 · 0 评论 -
fastllm 大模型cuda推理加速 源码解析 之 CMakelist.txt
【代码】fastllm 大模型cuda推理加速 源码解析 之 CMakelist.txt。原创 2023-08-10 13:20:11 · 472 阅读 · 0 评论 -
虚函数与纯虚函数
起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。定义一个函数为虚函数,不代表函数为不被实现的函数。定义一个函数为纯虚函数,来调用子类的这个函数。才代表函数没有被实现。原创 2022-10-24 00:15:51 · 149 阅读 · 0 评论 -
C++面试题,量化
传递参数的三种方式传值、指针、引用。原创 2022-09-29 23:05:33 · 627 阅读 · 0 评论 -
简单c++小程序:是否闰年
【代码】简单c++小程序:是否闰年。原创 2022-09-25 16:17:39 · 262 阅读 · 0 评论 -
26. 删除有序数组中的重复项 数组easy第一题 python C++
class Solution: def removeDuplicates(self, nums: List[int]) -> int: if not nums: return 0 n = len(nums) fast = slow = 1 while fast < n: if nums[fast] != nums[fast - 1]: ...原创 2022-03-22 23:25:35 · 346 阅读 · 1 评论 -
中级 array and sorting 334. 递增的三元子序列
【代码】中级 array and sorting 334. 递增的三元子序列。原创 2022-08-24 23:15:20 · 159 阅读 · 0 评论 -
中级 array and sorting 3. 无重复字符的最长子串 python C++
【代码】中级 array and sorting 3. 无重复字符的最长子串 python C++原创 2022-08-24 22:56:57 · 167 阅读 · 0 评论 -
2021-09-15二叉树的中序遍历
class Solution: def inorderTraversal(self, root: TreeNode) -> List[int]: WHITE, GRAY = 0, 1 res = [] stack = [(WHITE, root)] while stack: color, node = stack.pop() if node is None: conti...原创 2021-09-15 14:10:18 · 154 阅读 · 0 评论 -
说明assert()的作用:assert()是一个调试程序时经常使用的宏,在程序执行时计算括号内的表达式,如果表达式为假,程序报告错误,并终止执行;若表达式为真,则继续执行后面的语句。
原创 2021-09-15 10:14:42 · 213 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3方法1:先进行排序,然后看相邻元素是否相同,时间复杂度O(nlogn)class Solution: def findRepeatNumber(self, nums: List[int]...原创 2021-08-23 14:52:58 · 98 阅读 · 0 评论 -
剑指offer JZ02/05 替换空格 Python
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."方法一:遍历添加在 Python 和 Java 等语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。解决思路:遍历列表 s 中的每个字符 c :当 c 为空格时:向 res 中添加字符串 “%20” ;当 c 不为空格时:向 res 中添加字符 c ;cla...原创 2021-08-23 11:40:30 · 152 阅读 · 0 评论 -
Convert Sorted Array to Binary Search Tree
class Solution: def sortedArrayToBST(self, nums: List[int]) -> TreeNode: if not nums: return None mid = len(nums)//2 root = TreeNode(nums[mid]) root.left = self.sortedArrayToBST(nums[:mid]) root..原创 2021-08-19 09:49:34 · 165 阅读 · 0 评论 -
Jugs ACM
原题大意: 你有两个杯子,A、B;你只有三种操作,(1)清空任何一个杯子 (2)当被子是空的时候可以填满任何一个杯子 (3)将某一杯的水倒到另一杯中(不会溢出计算)直到B杯达到目标数Aim C。 输入的A、B升数有要求,一定需要相邻互质。并且A小于B,且目标数Aim C要小于B即可。 题目好像想象挺容易,手写也好像能解出来,但就是电脑老是犯傻逼。扔HDU的OJ上老是显示超时,我看了一下时间限制也很足够啊: Time Limit: 2000/1000 MS (Java.原创 2021-08-20 14:45:13 · 297 阅读 · 1 评论 -
CUDA 11.0.3 __global__ void VecAdd(float* A, float* B, float* C)
2.Programming ModelThis chapter introduces the main concepts behind the CUDA programming model by outlining how they are exposed in C++. An extensive description of CUDA C++ is given inProgramming Interface.Full code for the vector addition example u..原创 2021-08-20 14:31:11 · 531 阅读 · 0 评论 -
2021-08-17 String to Integet atoi, ratate list
8.String to Integer (atoi)class Solution: def myAtoi(self, s: str) -> int: return max(min(int(*re.findall('^[\+\-]?\d+', s.lstrip())), 2**31 - 1), -2**31)class Solution: def myAtoi(self, s:str) -> int: return max(min(i..原创 2021-08-17 11:53:30 · 119 阅读 · 0 评论 -
理解Visual Studio 解决方案文件格式(.sln)
sln文件是一个文本文件,虽然它没有用最流行的XML文件表示,但数据结构却类似于XML文件,基本上也是由节组成,一个节由标记和End加标记来限定,比如说工程信息的标记为Project,那么他们由Project和EndProject来限定。 每个节可以有自己的属性,并且节内部可以再嵌套子节。2019年7月24日 —本文介绍Visual Studio 解决方案(.sln)文件的格式...原创 2021-08-12 16:14:54 · 1197 阅读 · 0 评论 -
Mat - The Basic Image Container
Src:https://github.com/opencv/opencv/blob/master/samples/cpp/tutorial_code/core/mat_the_basic_image_container/mat_the_basic_image_container.cpp/* For description look into the help() function. */#include "opencv2/core.hpp"#include <iostream>.原创 2021-08-10 16:48:59 · 192 阅读 · 0 评论 -
OpenCV 4.5.3读取图片
#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <iostream>using namespace cv;int main(){ std::string image_path = samples::findFile("starry_night.jpg"); Mat img = imre.原创 2021-08-10 16:37:25 · 471 阅读 · 0 评论 -
OpenCV概念基础 4.5.3
API Conceptscv NamespaceAll the OpenCV classes and functions are placed into thecvnamespace. Therefore, to access this functionality from your code, use thecv::specifier orusing namespace cv;directive:#include "opencv2/core.hpp"...cv::M...原创 2021-08-10 16:09:12 · 310 阅读 · 0 评论 -
源码编译OpenCV 4.5.3
Quick startBuild core modules# Install minimal prerequisites (Ubuntu 18.04 as reference)sudo apt update && sudo apt install -y cmake g++ wget unzip# Download and unpack sourceswget -O opencv.zip https://github.com/opencv/opencv/archive/ma原创 2021-08-10 15:47:58 · 566 阅读 · 0 评论 -
Object Detection C++ Demo
This demo showcases inference of Object Detection networks using Async API. Async API usage can improve overall frame-rate of the application, because rather than wait for inference to complete, the app can continue doing things on the host, while accelera原创 2021-08-10 11:17:06 · 392 阅读 · 0 评论 -
CMake常用指令
CMake学习总结Cmake主要功能:根据编译器产生相应编译器的源码编译环境根据相应编译器编译程序编译执行程序可安装到任何一指定路径Cmake主要特点:开放源代码,使用类似BSD许可发布。跨平台,并可生成native编译配置文件,在Linux/Unix平台,生成makefile,在苹果平台,可以生成xcode,在Windows平台,可以生成MSVC平台,可以生成MSVC的工程文件。能够管理大型项目。简化编译构建过程和编译过程。Cmake的工具链非常简单:cmake+make高转载 2021-08-10 11:06:00 · 582 阅读 · 0 评论 -
cmake和make区别
写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。对于一原创 2021-08-10 10:59:08 · 252 阅读 · 0 评论 -
剑指 Offer 28. 对称的二叉树
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的:1/ \2 2\ \3 3示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:ro...原创 2021-08-10 10:48:46 · 91 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 target=5...原创 2021-08-10 10:37:20 · 102 阅读 · 0 评论 -
The Greatest C++ project
TensorflowPytorchopenPilotCUDAOpenCVPC games and Softwares原创 2021-08-09 17:35:53 · 165 阅读 · 0 评论 -
STL Container
C++ 标准模板库的核心包括以下三个组件:组件 描述 容器(Containers) 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。 算法(Algorithms) 算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。 迭代器(iterators) 迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。 这三个组件都带有丰富的预定义函数转载 2021-08-09 16:21:46 · 241 阅读 · 0 评论 -
C++ 标准模板库STL
C++ 标准模板库的核心包括以下三个组件:组件 描述 容器(Containers) 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。 算法(Algorithms) 算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。 迭代器(iterators) 迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。 这三个组件都带有丰富的预定义函数转载 2021-08-09 16:06:22 · 104 阅读 · 0 评论 -
The C++ Standard Template Library (STL)
The C++ Standard Template Library (STL)Difficulty Level :Easy Last Updated :28 Jun, 2021The Standard Template Library (STL) is a set of C++ template classes to provide common programming data structures and functions such as lists, stacks, arrays, et..原创 2021-08-09 15:53:01 · 177 阅读 · 0 评论 -
emplace_back() 和 push_back 的区别:emplace_back效率高,避免push_back使用时所需的额外副本或移动操作
学习 emplace_back() 和 push_back 的区别 emplace_back效率高在引入右值引用,转移构造函数,转移复制运算符之前,通常使用push_back()向容器中加入一个右值元素(临时对象)的时候,首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。这样造成的问题是临时变量申请的资源就浪费。c++11引入了右值引用,转移构造函数(请看这里)后,push_back()右值时就会调用构造函数和转移构造函数。在这..原创 2021-08-09 15:47:28 · 1027 阅读 · 0 评论 -
剑指 Offer 33. 二叉搜索树的后序遍历序列
Leetcode能过,牛客过不了输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true提示:数组长度 <= 1000来源:力扣(LeetCode)...原创 2021-08-09 14:24:00 · 172 阅读 · 0 评论 -
剑指offer 数组
2.3.1 数组数组可以说是最简单的一种数据结构,它占据一块连续的内存并按照顺序存储数据。创建数组时,我们需要首先指定数组的容量大小,然后根据大小分配内存。即使我们只在数组中存储一个数字,也需要为所有的数据预先分配内存。因此数组的空间效率不是很好,经常会有空闲的区域没有得到充分利用。由于数组中的内存是连续的,于是可以根据下标在O(1)时间读/写任何元素,因此它的时间效率是很高的。我们可以根据数组时间效率高的优点,用数组来实现简单的哈希表:把数组的下标设为哈希表的键值(Key),而把数组中的每一个数字设为原创 2021-08-09 13:37:24 · 149 阅读 · 0 评论 -
C++ 内存管理
malloc/free与new/delete 最大的不同是new运算符会自动调用对象的构造函数,delete运算符会调用对象的析构函数,而malloc/free 不会这样做。>>> 1.内存的组织结构不同于JAVA、C#等语言开发环境自带了垃圾回收机制,C/C++提供了更多的内存管理功能,一方面使得内存操作更灵活,另外也带来由于使用不当导致程序崩溃等问题。典型的C/C++内存区划分为4个部分(如图1.1所示)。图1.1内存的组织结构·代码段:用来存放程序的执行代码.通常代码段原创 2021-08-08 10:29:03 · 173 阅读 · 0 评论 -
Set Matrix Zeroes
给定一个 m x n 整数矩阵矩阵,如果元素为 0,则将其整个行和列设置为 0,并返回矩阵。你必须就地做。class Solution {public: void setZeroes(vector<vector<int>>& matrix) { int m=matrix.size(), n=matrix[0].size(); vector<int>visitrow(m,1); vector<.原创 2021-08-06 16:36:15 · 188 阅读 · 0 评论 -
Anagrams by Stack(进栈出栈问题)
堆栈操作序列如何产生字谜?有两种堆栈运算符序列可以将 TROT 转换为 TORT:[i i i i o o o oi o i i o o i o]其中 i 代表 Push,o 代表 Pop。你的程序应该,给定的单词对产生堆栈操作序列,将第一个单词转换为第二个单词。输入输入将由几行输入组成。每对输入行的第一行被视为源词(不包括行尾字符)。每对的第二行(同样,不包括行尾字符)是目标词。输入的结尾由文件结尾标记。对于每个输入对,您的程序应生成 i 和 o 的有效序列的排序列表,这些..原创 2021-08-06 16:24:35 · 312 阅读 · 0 评论 -
C++ 基础 弱类型语言是指不需要进行变量/对象类型声明的语言。Python属于弱类型语言
【面试题1-2】弱类型语言是指不需要进行变量/对象类型声明的语言。()属于弱类型语言。A. JavaB.C/C++C. PythonD.C#答:Java、C/C++和C#都是强类型语言。答案为C。【面试题1-3】C++和C有什么不同?答:就语言本身而言,C是C++的一个子集,C++在C的基础上增加了类和模板类型。一方面C++加强了C的过程化功能,引入了重载、异常处理等,另一方面更是扩展了面向对象设计的内容,如类、友元、继承、虚函数和模板等。从编程角度看,C是一种结构化编程...原创 2021-08-06 15:57:37 · 717 阅读 · 1 评论 -
简述静态全局变量的概念 C++
【面试题3】简述静态全局变量的概念1、考查的知识点· 静态全局变量2.问题分析在全局变量前加上 static关键字,就定义了一个静态全局变量。通常情况下,静态全局变量的声明和定义放在源文件中,并且不能使用extern关键字将静态全局变量导出,因此静态全局变量的作用域仅限于定义静态全局变量所在的文件内部。普通全局变量的作用域是整个工程,在头文件中使用extern 关键字声明普通全局变量,并在源文件中定义,其他文件只要使用#include包含声明普通全局变量的头文件...原创 2021-08-06 15:46:20 · 409 阅读 · 0 评论 -
纯虚函数和抽象类
1.纯虚函数与抽象类C++中的纯虚函数(或抽象函数)是我们没有实现的虚函数!我们只需声明它! 通过声明中赋值0来声明纯虚函数!// 抽象类Class A {public: virtual void show() = 0; // 纯虚函数 /* Other members */}; 纯虚函数:没有函数体的虚函数 抽象类:包含纯虚函数的类抽象类只能作为基类来派生新类使用,不能创建抽象类的对象,抽象类的指针和引用->由抽象类派生出来的类的对象!代码样例:tes转载 2021-08-06 14:59:22 · 276 阅读 · 0 评论 -
C++ OS 网络 数据库 (面试)
1. 结构体和共同体的区别。定义:结构体struct:把不同类型的数据组合成一个整体,自定义类型。共同体union:使几个不同类型的变量共同占用一段内存。地址:struct和union都有内存对齐,结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐选项。关于内存对齐,先让我们看四个重要的基本概念:1.数据类型自身的对齐值:对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。2.结构体或者类转载 2021-08-06 14:49:14 · 587 阅读 · 0 评论