- 一、CANN与Ascend C二、昇腾AI处理器架构三、Ascend的特点 一、CANN与Ascend C二、昇腾AI处理器架构三、Ascend的特点
- 算子开发的复杂性 算子开发的复杂性
- C++编程基础 C++函数在C++中,函数由一个函数头和一个函数主体组成。 函数的组成部分返回类型:一个函数可以返回一个值,return_type是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下retrun_type是关键字void。函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。参数:参数就像是占位符。当函数被调用时,向参数传递一个值,这个值被称... C++编程基础 C++函数在C++中,函数由一个函数头和一个函数主体组成。 函数的组成部分返回类型:一个函数可以返回一个值,return_type是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下retrun_type是关键字void。函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。参数:参数就像是占位符。当函数被调用时,向参数传递一个值,这个值被称...
- 在C++中使用RapidJSON库时,Document类的AddMember方法用于向JSON对象中添加成员(即键值对)。由于JSON支持多种数据类型(如字符串、数字、布尔值、数组、对象等),因此AddMember方法的使用方式会根据要添加的成员值的类型而有所不同。以下是一些示例,展示了如何使用AddMember方法来向Document对象中添加不同类型的成员: 1. 添加字符串成员#inc... 在C++中使用RapidJSON库时,Document类的AddMember方法用于向JSON对象中添加成员(即键值对)。由于JSON支持多种数据类型(如字符串、数字、布尔值、数组、对象等),因此AddMember方法的使用方式会根据要添加的成员值的类型而有所不同。以下是一些示例,展示了如何使用AddMember方法来向Document对象中添加不同类型的成员: 1. 添加字符串成员#inc...
- C++ FFmpeg 实现从设备端获取音视频流并通过RTMP推流 介绍FFmpeg 是一个开源的多媒体框架,能够对音频、视频进行录制、转换和流处理。通过 C++ 和 FFmpeg 库,我们可以从设备端获取音视频流,并将其通过 RTMP(Real-Time Messaging Protocol)推送到流媒体服务器。 应用使用场景实时直播:将摄像头或麦克风的数据推流到 RTMP 服务器,实现实... C++ FFmpeg 实现从设备端获取音视频流并通过RTMP推流 介绍FFmpeg 是一个开源的多媒体框架,能够对音频、视频进行录制、转换和流处理。通过 C++ 和 FFmpeg 库,我们可以从设备端获取音视频流,并将其通过 RTMP(Real-Time Messaging Protocol)推送到流媒体服务器。 应用使用场景实时直播:将摄像头或麦克风的数据推流到 RTMP 服务器,实现实...
- 在C++中,模板是实现泛型编程的强大工具。它们允许我们编写可以处理多种数据类型的代码,从而提高代码的复用性和灵活性。随着C++11的引入,可变模板参数和模板模板参数进一步增强了模板的表达力和通用性。 可变模板参数可变模板参数允许我们在模板中声明一个可以接受任意数量同类型或不同类型参数的模板参数包。这在实现如元组、函数参数包、类型列表等功能时非常有用。常见问题与易错点忘记展开参数包:在模板函数... 在C++中,模板是实现泛型编程的强大工具。它们允许我们编写可以处理多种数据类型的代码,从而提高代码的复用性和灵活性。随着C++11的引入,可变模板参数和模板模板参数进一步增强了模板的表达力和通用性。 可变模板参数可变模板参数允许我们在模板中声明一个可以接受任意数量同类型或不同类型参数的模板参数包。这在实现如元组、函数参数包、类型列表等功能时非常有用。常见问题与易错点忘记展开参数包:在模板函数...
- 《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面开发”介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Windows系统通过Visual Studio开发桌面程序也是很常见的,下面就介绍如何在Visual Studio的C++工程中集成FFmpeg库和SDL2库。首先按照《FFmpeg开发实战:从零基础到短视频上线》一书第1章“1.... 《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面开发”介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Windows系统通过Visual Studio开发桌面程序也是很常见的,下面就介绍如何在Visual Studio的C++工程中集成FFmpeg库和SDL2库。首先按照《FFmpeg开发实战:从零基础到短视频上线》一书第1章“1....
- 多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。 多继承时很容易产生命名冲突,即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字,命名冲突依然有可能发生,比如典型的是菱形继承,如下图所示: 图1:菱形继承 多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。 多继承时很容易产生命名冲突,即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字,命名冲突依然有可能发生,比如典型的是菱形继承,如下图所示: 图1:菱形继承
- 在多线程编程中,数据竞争和死锁是常见的问题,尤其是在高并发场景下。C++11 引入了标准库中的并发容器,旨在解决这些问题,使多线程编程更加安全和高效。本文将深入浅出地介绍C++中的并发容器,包括它们的特性、常见问题、易错点以及如何避免这些陷阱。 1. 并发容器简介C++11 标准库提供了几种并发容器,包括但不限于:std::shared_mutex 和 std::shared_lock:用于... 在多线程编程中,数据竞争和死锁是常见的问题,尤其是在高并发场景下。C++11 引入了标准库中的并发容器,旨在解决这些问题,使多线程编程更加安全和高效。本文将深入浅出地介绍C++中的并发容器,包括它们的特性、常见问题、易错点以及如何避免这些陷阱。 1. 并发容器简介C++11 标准库提供了几种并发容器,包括但不限于:std::shared_mutex 和 std::shared_lock:用于...
- VSCode版本如下 问题描述MFC的项目,需要调用C#生成的DLL,需要在项目中设置 .NET Framework 运行时支持(/clr)编译运行,报错如下:严重性代码说明项目文件行列源错误(活动)E0035#error 指令: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll v... VSCode版本如下 问题描述MFC的项目,需要调用C#生成的DLL,需要在项目中设置 .NET Framework 运行时支持(/clr)编译运行,报错如下:严重性代码说明项目文件行列源错误(活动)E0035#error 指令: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll v...
- 在软件工程中,设计模式是一种通用的解决方案,用于解决常见的设计问题。其中,单例模式确保一个类只有一个实例,并提供一个全局访问点。本文将深入浅出地介绍C++中的单例模式,包括其常见问题、易错点以及如何避免这些问题。 1. 单例模式的基本概念单例模式的核心在于控制类的实例化过程,确保无论何时调用,都只能创建一个实例。这在资源管理、配置文件读取等场景中非常有用,可以避免资源浪费和提高程序的效率。 ... 在软件工程中,设计模式是一种通用的解决方案,用于解决常见的设计问题。其中,单例模式确保一个类只有一个实例,并提供一个全局访问点。本文将深入浅出地介绍C++中的单例模式,包括其常见问题、易错点以及如何避免这些问题。 1. 单例模式的基本概念单例模式的核心在于控制类的实例化过程,确保无论何时调用,都只能创建一个实例。这在资源管理、配置文件读取等场景中非常有用,可以避免资源浪费和提高程序的效率。 ...
- 在计算机科学中,缓存是一个至关重要的概念,它能够显著提高数据访问速度。然而,缓存的使用并非没有问题,其中最著名的问题之一就是伪共享。本文将深入浅出地介绍缓存行与伪共享问题,包括常见问题、易错点以及如何避免这些问题。 什么是缓存行?缓存行是缓存中数据存储的基本单位。在大多数现代处理器中,缓存行的大小通常是64字节。当处理器访问一个变量时,它会将包含该变量的整个缓存行加载到缓存中。这样,当处理器... 在计算机科学中,缓存是一个至关重要的概念,它能够显著提高数据访问速度。然而,缓存的使用并非没有问题,其中最著名的问题之一就是伪共享。本文将深入浅出地介绍缓存行与伪共享问题,包括常见问题、易错点以及如何避免这些问题。 什么是缓存行?缓存行是缓存中数据存储的基本单位。在大多数现代处理器中,缓存行的大小通常是64字节。当处理器访问一个变量时,它会将包含该变量的整个缓存行加载到缓存中。这样,当处理器...
- 在多线程编程中,理解内存模型至关重要,它决定了程序如何处理并发访问共享资源的问题。C++11标准引入了一套内存模型,旨在解决多线程环境下的数据竞争和同步问题。本文将深入浅出地探讨C++的内存模型,常见的数据竞争问题,以及如何避免这些陷阱。 1. C++内存模型简介C++内存模型定义了线程间数据共享和同步的基本规则。它包括以下关键概念:顺序一致性:保证单个线程中的操作按顺序执行。原子操作:不可... 在多线程编程中,理解内存模型至关重要,它决定了程序如何处理并发访问共享资源的问题。C++11标准引入了一套内存模型,旨在解决多线程环境下的数据竞争和同步问题。本文将深入浅出地探讨C++的内存模型,常见的数据竞争问题,以及如何避免这些陷阱。 1. C++内存模型简介C++内存模型定义了线程间数据共享和同步的基本规则。它包括以下关键概念:顺序一致性:保证单个线程中的操作按顺序执行。原子操作:不可...
- 1.友元介绍 在C++中,友元(friend)是一种机制,允许某个类或函数访问其他类的私有成员。通过友元,可以授予其他类或函数对该类的私有成员的访问权限。友元关系在一些特定的情况下很有用,例如在类之间共享数据或实现特定的功能。 友元可以分为两种类型:类友元和函数友元。 2.类友元 类友元(Friend Class): 可以将一个类声明为另一个类的友元。这样,在被声明为友元的类中,就可以直 1.友元介绍 在C++中,友元(friend)是一种机制,允许某个类或函数访问其他类的私有成员。通过友元,可以授予其他类或函数对该类的私有成员的访问权限。友元关系在一些特定的情况下很有用,例如在类之间共享数据或实现特定的功能。 友元可以分为两种类型:类友元和函数友元。 2.类友元 类友元(Friend Class): 可以将一个类声明为另一个类的友元。这样,在被声明为友元的类中,就可以直
- 本文用c语言自定义虚函数表VTable实现了一下virtual的功能,来深刻理解其机制。我们通过创建存储函数指针的结构体来模拟这种行为。 本文用c语言自定义虚函数表VTable实现了一下virtual的功能,来深刻理解其机制。我们通过创建存储函数指针的结构体来模拟这种行为。
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签