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

WPF面试题入门篇

入门篇[2]

1. 谈谈什么是WPF?

WPF(Windows Presentation Foundation)是微软公司开发的一种用于创建Windows应用程序的用户界面框架。它是.NET Framework的一部分,提供了一种基于XAML(可扩展应用程序标记语言)的方式来构建富客户端应用程序。

WPF具有以下特点:

  1. 矢量图形:WPF支持矢量图形,可以实现高质量的图形渲染,使应用程序具有更好的外观和用户体验。
  2. 数据绑定:WPF提供了强大的数据绑定机制,可以将数据与用户界面元素进行关联,实现数据的自动更新和同步。
  3. 样式和模板:WPF允许开发人员使用样式和模板来定义应用程序的外观和布局,使界面设计更加灵活和可定制。
  4. 动画和转换:WPF支持丰富的动画和转换效果,可以为应用程序添加生动和吸引人的交互效果。
  5. 响应式布局:WPF使用基于容器的布局模型,可以自动调整和适应不同大小和分辨率的屏幕,提供更好的跨平台和响应式设计。

总之,WPF是一种强大的用户界面框架,可以帮助开发人员构建现代化、可定制和具有良好用户体验的Windows应用程序。

2. 说说WPF中的XAML是什么?为什么需要它?它只存在于WPF吗?

XAML(可扩展应用程序标记语言)是一种基于XML的标记语言,用于定义WPF应用程序的用户界面和对象的结构。它是WPF中的一部分,但也被用于其他.NET技术,如Silverlight和UWP(Universal Windows Platform)应用程序。

XAML的存在有以下几个原因:

  1. 分离界面和逻辑:XAML允许开发人员将界面设计与应用程序逻辑分离,使得界面设计师和开发人员可以并行工作,提高开发效率。

  2. 可读性和可维护性:XAML使用类似于HTML的标记语法,易于阅读和理解。它提供了一种声明性的方式来描述界面元素和其属性,使得界面的修改和维护更加方便。

  3. 数据绑定和样式:XAML提供了强大的数据绑定机制和样式定义,可以将界面元素与数据源关联,并通过样式和模板来定义元素的外观和行为。

  4. 可扩展性:XAML是可扩展的,可以通过自定义标记和扩展来满足特定的需求,使开发人员能够更好地适应不同的应用场景。

尽管XAML最初是为WPF设计的,但它也被广泛应用于其他.NET技术中。例如,Silverlight和UWP应用程序也使用XAML来定义界面和对象结构。因此,XAML不仅存在于WPF,还存在于其他.NET平台和技术中。

WPF初级篇[13]

3. 简单描述下WPF的样式

WPF的样式是一种用于定义界面元素外观和行为的机制。它允许开发人员通过集中定义和应用样式,来实现界面的一致性和可定制性。

WPF样式具有以下特点:

  1. 外观定义:样式可以定义界面元素的外观,包括背景、前景、边框、字体等。通过样式,可以统一应用程序中的元素外观,使其具有一致的风格。

  2. 行为定义:样式还可以定义界面元素的行为,例如鼠标悬停效果、点击效果等。通过样式,可以为元素添加交互效果,提升用户体验。

  3. 层级结构:WPF样式支持层级结构,可以定义基本样式,并在其基础上进行扩展和修改。这样可以实现样式的继承和重用,提高开发效率。

  4. 动态样式:WPF样式支持动态更新,可以根据应用程序的状态或用户的操作来改变样式。这样可以实现动态的界面效果,增强应用程序的交互性。

样式可以在XAML中定义,并通过键值对的方式应用到界面元素上。开发人员可以通过在应用程序的资源字典中定义样式,或者直接在元素的属性中指定样式来应用样式。

总之,WPF的样式是一种强大的机制,可以帮助开发人员定义和应用界面元素的外观和行为,实现界面的一致性和可定制性。

4. WPF 中的资源是什么?

在WPF中,资源是一种用于定义和管理可重用对象的机制。资源可以是各种类型的对象,如样式、模板、数据、图像等,它们可以在应用程序中被多个元素共享和重用。

WPF中的资源具有以下特点:

  1. 全局性:资源可以在整个应用程序范围内访问和使用,不受特定元素的限制。这意味着资源可以在不同的窗口、页面或用户控件中共享和重用。

  2. 层级结构:WPF资源支持层级结构,可以在应用程序级别、窗口级别、页面级别或元素级别定义和使用。这样可以实现资源的继承和覆盖,提供更灵活的资源管理。

  3. 静态和动态:资源可以是静态的,即在XAML中直接定义;也可以是动态的,即在代码中动态创建和添加。这样可以根据应用程序的需求来选择合适的资源定义方式。

  4. 资源字典:WPF中的资源通常被组织在资源字典中,资源字典是一种集合,可以包含多个资源定义。资源字典可以在XAML中直接定义,也可以通过外部文件导入。

通过使用资源,开发人员可以实现以下目标:

  1. 提高开发效率:资源可以被多个元素共享和重用,避免了重复定义和修改的工作,提高了开发效率。

  2. 统一外观和行为:通过定义样式、模板等资源,可以实现界面元素的一致性,使应用程序具有统一的外观和行为。

  3. 管理和修改方便:通过集中管理资源,可以方便地修改和更新资源,而不需要逐个修改每个元素的属性。

总之,WPF中的资源是一种用于定义和管理可重用对象的机制,可以提高开发效率、统一界面风格,并方便地管理和修改资源。

5. WPF中的Visibility.Collapsed和Visibility.Hidden有什么区别?

在WPF中,Visibility.Collapsed和Visibility.Hidden是用于控制界面元素可见性的枚举值。

Visibility.Collapsed:当一个元素的可见性设置为Collapsed时,该元素将不会占用任何空间,并且不会显示在界面上。与之相对的是Visibility.Visible,表示元素可见并占用空间。

Visibility.Hidden:当一个元素的可见性设置为Hidden时,该元素将不会显示在界面上,但仍然会占用相应的空间。与之相对的是Visibility.Visible,表示元素可见并占用空间。

因此,Visibility.Collapsed和Visibility.Hidden的区别在于是否占用空间。Collapsed会使元素不占用空间,而Hidden仅隐藏元素但仍占用空间。

使用Collapsed可以在需要时动态地隐藏元素,并且不会影响布局。而使用Hidden可以在需要时隐藏元素,但仍然保留其占用的空间,可能会影响布局。

根据具体的需求,开发人员可以选择使用Collapsed或Hidden来控制元素的可见性。

6. 什么是静态资源和动态资源?

在WPF中,静态资源和动态资源是用于定义和管理可重用对象的两种不同方式。

  1. 静态资源:静态资源是在XAML中直接定义的资源,其值在编译时确定并保持不变。静态资源可以通过资源字典或资源文件定义,并通过键值对的方式在XAML中引用和应用。一旦静态资源被定义,它可以在整个应用程序中被多个元素共享和重用。静态资源的值在应用程序运行期间保持不变,除非手动修改或重新加载资源。
  2. 动态资源:动态资源是在代码中动态创建和添加的资源,其值可以在运行时根据应用程序的状态或用户的操作进行修改。动态资源通常通过代码来创建和管理,可以在需要时动态地添加、修改或移除。与静态资源不同,动态资源的值可以在应用程序运行期间发生变化,以适应不同的场景和需求。

使用静态资源可以在应用程序中实现资源的统一管理和重用,提高开发效率和维护性。而使用动态资源可以根据应用程序的需求来动态地修改和更新资源,实现更灵活的界面效果和交互。开发人员可以根据具体的场景和需求选择使用静态资源或动态资源来管理和应用可重用对象。

7. WPF中控件的分类?

在WPF中,控件可以按照其功能和用途进行分类。以下是常见的WPF控件分类:

  1. 基本控件(Basic Controls):这些是WPF中最基本的控件,用于构建用户界面的基本元素,如Button(按钮)、TextBox(文本框)、Label(标签)、CheckBox(复选框)、RadioButton(单选按钮)等。

  2. 布局控件(Layout Controls):这些控件用于在界面中组织和布局其他控件,以实现界面的结构和排列。常见的布局控件包括Grid(网格)、StackPanel(堆栈面板)、WrapPanel(自动换行面板)、DockPanel(停靠面板)等。

  3. 容器控件(Container Controls):这些控件用于容纳其他控件,并提供额外的功能和样式。常见的容器控件包括GroupBox(分组框)、TabControl(选项卡控件)、Expander(可展开控件)、ScrollViewer(滚动视图控件)等。

  4. 数据控件(Data Controls):这些控件用于显示和操作数据,通常与数据绑定一起使用。常见的数据控件包括ListBox(列表框)、ListView(列表视图控件)、DataGrid(数据表格控件)、ComboBox(下拉框)等。

  5. 图形控件(Graphics Controls):这些控件用于绘制和显示图形、图像和形状。常见的图形控件包括Image(图像控件)、Canvas(画布控件)、Rectangle(矩形控件)、Ellipse(椭圆控件)等。

  6. 导航控件(Navigation Controls):这些控件用于实现应用程序的导航和页面切换。常见的导航控件包括Frame(框架控件)、Page(页面控件)、NavigationWindow(导航窗口控件)等。

  7. 模板控件(Template Controls):这些控件用于自定义和重写控件的外观和行为。常见的模板控件包括ControlTemplate(控件模板)、DataTemplate(数据模板)、Style(样式)等。

这些是WPF中常见的控件分类,每个分类中都有更多的具体控件可供使用。开发人员可以根据应用程序的需求选择合适的控件来构建用户界面。

8. WPF中的命令设计模式是什么

WPF中的命令设计模式是一种用于处理用户界面操作的模式。它将用户界面操作(如按钮点击、菜单选择等)与执行操作的逻辑代码分离,使得代码更加可维护和可重用。

在WPF中,命令设计模式由以下几个关键组件组成:

  1. 命令(Command):命令是一个抽象类,定义了执行操作的方法(Execute)和判断是否可以执行操作的方法(CanExecute)。

  2. 命令目标(Command Target):命令目标是指接收命令的对象,通常是用户界面元素(如按钮、菜单项等)。

  3. 命令绑定(Command Binding):命令绑定是将命令与命令目标关联起来的机制。通过命令绑定,可以将命令与用户界面元素的事件(如按钮的点击事件)关联起来。

  4. 命令参数(Command Parameter):命令参数是传递给命令的额外信息,可以用于在执行命令时进行一些特定的操作。

使用命令设计模式,可以将用户界面操作的逻辑代码从界面代码中分离出来,使得代码更加清晰和可维护。此外,命令还可以通过CanExecute方法来控制命令是否可用,从而实现界面元素的禁用和启用。

9. XML和XAML有什么区别?

XML(可扩展标记语言)和XAML(可扩展应用程序标记语言)都是基于标记的语言,用于描述和表示数据和结构。它们在某些方面有相似之处,但也有一些区别。

  1. 用途:XML主要用于存储和传输数据,它是一种通用的标记语言,可以用于描述各种类型的数据。而XAML主要用于描述用户界面和应用程序的结构,它是一种特定领域的标记语言,用于构建WPF、Silverlight和UWP等应用程序的用户界面。

  2. 语法:XML的语法相对简单,它使用标签和属性来描述数据结构。而XAML的语法更加复杂,它使用标签、属性和属性值来描述用户界面元素和应用程序的结构。

  3. 可读性:XML的语法相对直观和易读,可以被人类读取和理解。而XAML的语法相对复杂,需要一定的学习和理解才能读取和理解。

  4. 功能:XML主要用于描述数据和结构,它没有直接的编程功能。而XAML不仅可以描述用户界面和应用程序的结构,还可以包含一些编程逻辑,如事件处理和数据绑定等。

总的来说,XML和XAML都是标记语言,用于描述和表示数据和结构,但XML更加通用,而XAML更加专注于描述用户界面和应用程序的结构。

10. WPF中的xmlns 和xmlns:x有什么区别?

在WPF中,xmlns和xmlns:x都是用于定义命名空间的属性,用于引入和使用特定的命名空间。

  1. xmlns:xmlns是XML命名空间的属性,用于引入和使用WPF的命名空间。它通常用于定义WPF的核心命名空间,如"xmlns=“http://schemas.microsoft.com/winfx/2006/xaml/presentation”",这样就可以在XAML中使用WPF的核心元素和特性。
  2. xmlns:x:xmlns:x是XAML命名空间的属性,用于引入和使用XAML的命名空间。它通常用于定义XAML的扩展命名空间,如"xmlns:x=“http://schemas.microsoft.com/winfx/2006/xaml”",这样就可以在XAML中使用XAML的扩展功能,如x:Key、x:Name等。

总的来说,xmlns用于引入和使用WPF的命名空间,而xmlns:x用于引入和使用XAML的命名空间。它们的区别在于所引入的命名空间的不同,以及所支持的元素和特性的不同。

11. 相对于Winform,WPF有什么优势?

相对于WinForms,WPF(Windows Presentation Foundation)具有以下优势:

  1. 强大的可视化能力:WPF提供了丰富的可视化能力,支持更灵活、更富有创意的用户界面设计。它使用XAML语言来描述界面,可以轻松实现复杂的布局、动画、效果和样式等。

  2. 数据绑定:WPF内置了强大的数据绑定机制,可以将数据与界面元素进行绑定,实现数据的自动更新和双向绑定。这使得开发人员可以更轻松地处理数据和界面之间的交互。

  3. MVVM模式支持:WPF天生支持MVVM(Model-View-ViewModel)模式,这是一种用于分离界面逻辑和业务逻辑的设计模式。MVVM模式使得代码更加清晰、可维护和可测试。

  4. 可重用性:WPF提供了一系列可重用的控件和组件,可以通过样式和模板进行自定义和扩展。这使得开发人员可以更快速地构建和定制用户界面,提高开发效率。

  5. 矢量图形支持:WPF内置了矢量图形引擎,可以实现高质量的图形渲染和动画效果。这使得开发人员可以创建更具吸引力和交互性的用户界面。

  6. 平台限制:WPF本身只能在Windows操作系统上运行。如果想要在其他平台上运行WPF应用程序,可以使用一些第三方框架如MAUI(.NET Multi-platform App UI)、Avalonia UI或Uno等来实现跨平台(支持Windows、Linux、macOS等)支持。

总的来说,相对于WinForms,WPF具有更强大的可视化能力、数据绑定、MVVM模式支持、可重用性和矢量图形支持等优势,使得开发人员可以更轻松地构建现代化、灵活和可扩展的应用程序。然而,需要注意的是WPF本身只能在Windows操作系统上运行,如果需要跨平台支持,可以考虑使用相关的第三方框架。

12.什么是WPF的值转换器?

在WPF(Windows Presentation Foundation)中,值转换器(Value Converter)是一种实现IValueConverter接口的类,用于在绑定过程中将一个值转换为另一个值。它可以在数据绑定时对数据进行转换、格式化或者适配,以满足特定的需求。

值转换器通常用于以下情况:

  1. 数据类型转换:当绑定的源数据类型与目标属性的类型不匹配时,值转换器可以将源数据转换为目标类型,以便正确地显示或使用。

  2. 数据格式化:值转换器可以将数据格式化为特定的格式,例如将日期时间格式化为特定的字符串格式,或者将数字格式化为货币格式。

  3. 数据适配:当绑定的源数据与目标属性的数据结构不匹配时,值转换器可以将源数据适配为目标属性所需的数据结构,以便正确地显示或使用。

值转换器通过实现IValueConverter接口中的两个方法来完成转换:

  1. Convert:该方法用于将源数据转换为目标数据。在该方法中,开发人员可以根据需要进行数据转换、格式化或适配,并返回转换后的值。
  2. ConvertBack:该方法用于将目标数据转换回源数据。在双向绑定时,当目标属性的值发生变化时,该方法会被调用,开发人员可以根据需要将目标数据转换回源数据,并返回转换后的值。

值转换器可以通过在XAML中的绑定表达式中使用Converter属性来指定。例如:

<TextBlock Text="{BindingMyProperty,Converter={StaticResourceMyConverter}}"/>

在上述示例中,MyConverter是一个值转换器的实例,它将被应用于绑定表达式中的MyProperty属性。

通过使用值转换器,开发人员可以更灵活地处理数据绑定过程中的数据转换、格式化和适配,以满足特定的需求。

13. XAML 文件中的 xmlns 是什么?

xmlns 是 XML 命名空间的缩写,用于定义 XML 文件中使用的命名空间。在 XAML 文件中,xmlns 用于引用和定义 XAML 文件中使用的命名空间。通过使用 xmlns,可以引用其他命名空间中定义的类型和成员,并在 XAML 文件中使用它们。

14. 我们什么时候应该使用“x:Name”和“Name”?

在 XAML 中,我们可以使用 “x:Name” 和 “Name” 来为元素指定一个名称。但是它们有一些不同的用途和适用场景。

  1. x:Name:这是 XAML 特有的属性,用于在 XAML 中为元素指定一个名称。它主要用于在 XAML 中引用元素,例如在代码中访问元素或在触发器中使用元素。x:Name 属性的值在 XAML 文件中必须是唯一的。
  2. Name:这是一个通用的属性,可以在 XAML 和代码中使用。它用于为元素指定一个名称,以便在代码中访问元素。与 x:Name 不同,Name 属性的值可以在 XAML 文件中重复使用。

因此,当你需要在 XAML 中引用元素时,应该使用 “x:Name” 属性。而当你只需要在代码中访问元素时,可以使用 x:Name 或 “Name” 属性。

相关文章:

WPF面试题入门篇

入门篇[2] 1. 谈谈什么是WPF&#xff1f; WPF&#xff08;Windows Presentation Foundation&#xff09;是微软公司开发的一种用于创建Windows应用程序的用户界面框架。它是.NET Framework的一部分&#xff0c;提供了一种基于XAML&#xff08;可扩展应用程序标记语言&#xf…...

opencv-ORB检测

ORB&#xff08;Oriented FAST and Rotated BRIEF&#xff09;是一种图像特征检测和描述算法&#xff0c;结合了 FAST 关键点检测器和 BRIEF 描述子的优点。ORB 算法具有良好的性能&#xff0c;特别适用于实时应用&#xff0c;如目标追踪、相机定位等。 以下是 ORB 算法的一般…...

please upgrade numpy version to >=1.20

升级 upgrade numpy_升级numpy-CSDN博客 pip install numpy --upgrade 没有pip conda install numpy --upgrade 会报错 conda list numpy来查看numpy版本 似乎这个numpy要看numpy-base这个 似乎没有pip...

关于进制的转化

二进制转十进制&#xff1a; &#x1f530; 方法一&#xff1a;二进制转十进制&#xff0c;用各数的码位与位权的乘积之和&#xff0c;说白了就是用从右到左的每个数去乘以2的幂次方&#xff08;最右边是0&#xff09;&#xff0c;然后就所有的数相加。 补充&#xff1a;位权是…...

JVM 之 字节码指令

目录 一. 前言 二. 指令集 2.1. 支持的数据类型 2.2. 指令分类 三. 指令手册 3.1. 操作数栈 3.2. 运算与转换 3.3. 条件转移 3.4. 类与数组 3.5. 调度与返回加 finally 3.6. 指令手册汇总 3.7. 示例 一. 前言 字节码指令集的特点是数据量短小精干&#xff0c;便于传…...

阿里云跨账号建立局域网

最近有活动&#xff0c;和好友一并薅了下阿里云的羊毛。琢磨着两台机器组一个局域网&#xff0c;于是有了这个需求&#xff0c;把步骤记录一下&#xff1a; 假设两台机器叫A和B&#xff0c;我们开始进行建立和组网 1. 建立ECS 把A机器公共环境装好&#xff0c;然后使用《实例与…...

【OpenSTL】方便好用的时空预测开源库

OpenSTL&#xff1a;方便好用的时空预测开源库 时空预测学习是一种学习范式&#xff0c;它使得模型能够通过在无监督的情况下从给定的过去帧预测未来帧&#xff0c;从而学习空间和时间的模式。尽管近年来取得了显著的进展&#xff0c;但由于不同的设置、复杂的实现和难以复现性…...

【Unity】IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍

IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍 IBeginDragHandler、IDragHandler 和 IEndDragHandler 是 Unity 引擎中的三个接口&#xff0c;用于处理 UI 元素的拖放事件。这些接口通常结合使用&#xff0c;构成了 Unity 引擎的拖放事件系统。 IBeginDragHandler…...

杰发科技AC7801——Flash模拟EEP内存分布情况

简介 本文记录了在使用AutoChips芯片Flash模拟EEP过程中的一些理解 核心代码如下 #include <stdlib.h> #include "ac780x_sweeprom.h" #include "ac780x_debugout.h"#define SWEEPROM_SIZE (2048UL) /* Ssoftware eeprom size(Byte) */ #define TE…...

【前端知识】Node——http模块url模块的常用操作

一、创建简易Server const http require(http); const URL require(url);const HTTP_PORT 8088;const server http.createServer((req, res) > {// req&#xff1a;request请求对象&#xff0c;包含请求相关的信息&#xff1b;// res&#xff1a;response响应对象&…...

平衡二叉树 (简单易懂)

目录 一、概念 二、性质 三、插入操作 四、旋转操作 五、删除操作 六、代码实现 七、复杂度 一、概念 平衡二叉树&#xff08;Balanced Binary Tree&#xff09;是一种特殊的二叉搜索树&#xff08;Binary Search Tree&#xff0c;BST&#xff09;&#xff0c;它在插入和…...

Vue.observable 是什么

Observable 翻译过来我们可以理解成可观察的 Vue.js2.6 新增 Vue.observable&#xff0c;让一个对象变成响应式数据。Vue 内部会用它来处理 data 函数返回的对象 。 返回的对象可以直接用于渲染函数和计算属性内&#xff0c;并且会在发生变更时触发相应的更新。也可以作为最小化…...

【五年创作纪念日】

机缘 我成为创作者的过程并不复杂&#xff0c;可以说是一个自然的发展。我是一名软件工程师&#xff0c;日常的工作主要是编程和解决问题。在工作的过程中&#xff0c;我发现有很多时候我需要查找一些特定的技术问题或者寻找一些最佳实践来解决我遇到的问题。在这个过程中&…...

数据库基础入门 — SQL排序与分页

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…...

WordPress站点屏蔽过滤垃圾评论教程(Akismet反垃圾评论插件)

前段时间我的WordPress站点经常收到垃圾评论的轰炸&#xff0c;严重时一天会收到几十条垃圾评论。我这个小破站一没啥流量&#xff0c;二又不盈利&#xff0c;实在是不太理解为啥有人要这么执着地浪费资源在上面。 Akismet反垃圾评论插件 其实用了 Akismet 反垃圾评论插件后&a…...

Modbus-RTU协议讲解与实战

1、背景 工作需要,需要使用Modbus-RTU实现RS485通信,于是简单学习并实践了一下。 2、参考资料 一文看懂Modbus协议 3、协议说明 3.1、协议类型 当前设备采用Modbus-RTU协议,采用CRC-16_Modbus校验算法,数据链路层使用用标准串口协议,物理层采用RS485进行数据传输。 …...

数据结构 查找基本概念

敬请期待。。。 1. 适用于折半查找的表的存储方式及元素排列要求为&#xff08;顺序方式存储&#xff0c;元素有序 &#xff09;。 2. 有一个按元素值排好序的顺序表(长度大于2)&#xff0c;分别用顺序查找和折半查找与给定值相等的元素&#xff0c;比较次数分别是s和b&am…...

『Linux升级路』基础开发工具——gcc/g++篇

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;Linux &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、快速认识gcc/g 二、预处理 &#x1f4d2;1.1头文件展开 &#x1f4d2;1…...

面试:RocketMQ相关问题

文章目录 什么是 RocketMQ&#xff0c;有哪些使用场景&#xff1f;RocketMQ 由哪些⻆色组成&#xff0c;每个⻆色作用和特点是什么&#xff1f;RocketMQ 中的 Topic 和 JMS 的 queue 有什么区别&#xff1f;RocketMQ 消费模式有几种&#xff1f;RocketMQ 的 Consumer 是如何消费…...

2304. 网格中的最小路径代价 : 从「图论最短路」过渡到「O(1) 空间的原地模拟」

题目描述 这是 LeetCode 上的 「2304. 网格中的最小路径代价」 &#xff0c;难度为 「中等」。 Tag : 「最短路」、「图」、「模拟」、「序列 DP」、「动态规划」 给你一个下标从 0 开始的整数矩阵 grid&#xff0c;矩阵大小为 m x n&#xff0c;由从 0 到 的不同整数组成。 你…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...