- 一、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的功能,来深刻理解其机制。我们通过创建存储函数指针的结构体来模拟这种行为。
上滑加载中
推荐直播
-
探秘仓颉编程语言:华为开发者空间的创新利器
2025/02/22 周六 15:00-16:30
华为云讲师团
本期直播将与您一起探秘颉编程语言上线华为开发者空间后,显著提升开发效率,在智能化开发支持、全场景跨平台适配能力、工具链与生态完备性、语言简洁与高性能特性等方面展现出的独特优势。直播看点: 1.java转仓颉的小工具 2.仓颉动画三方库lottie 3.开发者空间介绍及如何在空间用仓颉编程语言开发
回顾中 -
大模型Prompt工程深度实践
2025/02/24 周一 16:00-17:30
盖伦 华为云学堂技术讲师
如何让大模型精准理解开发需求并生成可靠输出?本期直播聚焦大模型Prompt工程核心技术:理解大模型推理基础原理,关键采样参数定义,提示词撰写关键策略及Prompt工程技巧分享。
去报名 -
华为云 x DeepSeek:AI驱动云上应用创新
2025/02/26 周三 16:00-18:00
华为云 AI专家大咖团
在 AI 技术飞速发展之际,DeepSeek 备受关注。它凭借哪些技术与理念脱颖而出?华为云与 DeepSeek 合作,将如何重塑产品与应用模式,助力企业数字化转型?在华为开发者空间,怎样高效部署 DeepSeek,搭建专属服务器?基于华为云平台,又该如何挖掘 DeepSeek 潜力,实现智能化升级?本期直播围绕DeepSeek在云上的应用案例,与DTSE布道师们一起探讨如何利用AI 驱动云上应用创新。
去报名
热门标签