C#学习之DataGridView控件
目录
一、DataGridView控件常用属性、方法、事件汇总表
1. 常用方法、属性和事件汇总
二、DataGridView 控件的常用方法调用
1. DataBind() 方法
2. Clear() 方法
3. Refresh() 方法
4. Sort() 方法
5. ClearSelection() 方法
6. BeginEdit() 方法
7. EndEdit() 方法
8. CommitEdit() 方法
9. CancelEdit() 方法
10. SelectAll() 方法
11. GetCellCount() 方法
12. GetColumnCount() 方法
13. GetRowCount() 方法
14. HitTest() 方法
15. AutoResizeColumns() 方法
16. AutoResizeRows() 方法
17. Add() 方法
18. Remove() 方法
19. Insert() 方法
20. Copy() 方法
21. Paste() 方法
22. Find() 方法
23. ScrollIntoView() 方法
24. InvalidateCell() 方法
25. InvalidateRow() 方法
26. InvalidateColumn() 方法
27. Update() 方法
28. Dispose() 方法
29. Show() 和 Hide() 方法
30. BringToFront() 和 SendToBack() 方法
三、DataTable作为DataGridView的数据源示例
1、代码示例:
2. 代码说明
3.总结
一、DataGridView控件常用属性、方法、事件汇总表
DataGridView 是 Windows Forms 中用于显示和编辑表格数据的强大控件。以下是一些常用的方法、属性和事件的汇总。
1. 常用方法、属性和事件汇总
类型 | 名称 | 描述 |
---|---|---|
属性 | DataSource | 获取或设置 DataGridView 的数据源。 |
Columns | 获取控件中所有列的集合。 | |
Rows | 获取控件中所有行的集合。 | |
CurrentCell | 获取或设置当前活动的单元格。 | |
ReadOnly | 获取或设置一个值,指示用户是否可以编辑控件的单元格。 | |
AllowUserToAddRows | 获取或设置一个值,指示是否向用户显示添加行的选项。 | |
AllowUserToDeleteRows | 获取或设置一个值,指示用户是否可以从控件中删除行。 | |
SelectionMode | 获取或设置一个值,指示如何选择单元格。 | |
MultiSelect | 获取或设置一个值,指示是否允许用户一次选择多个单元格、行或列。 | |
方法 | Refresh() | 强制控件使其工作区无效并立即重绘自己和任何子控件。 |
ClearSelection() | 取消选择所有选定的单元格。 | |
Sort() | 对 DataGridView 的内容进行排序。 | |
BeginEdit() | 将当前的单元格置于编辑模式。 | |
EndEdit() | 提交对当前单元格的编辑并结束编辑操作。 | |
事件 | CellClick | 在单元格的任何部分被单击时发生。 |
CellValueChanged | 在单元格的值更改时发生。 | |
RowEnter | 在行接收到输入焦点时发生。 | |
RowLeave | 在行失去输入焦点时发生。 | |
SelectionChanged | 在当前选择更改时发生。 |
二、DataGridView
控件的常用方法调用
以下是 DataGridView
控件的各种常用方法的调用过程。
1. DataBind()
方法
将数据源绑定到 DataGridView
。
// 创建 DataTable
DataTable dataTable = new DataTable();
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Age", typeof(int));// 添加数据
dataTable.Rows.Add(1, "Alice", 23);
dataTable.Rows.Add(2, "Bob", 30);
dataTable.Rows.Add(3, "Charlie", 25);// 绑定数据源
dataGridView1.DataSource = dataTable;
2. Clear()
方法
清除 DataGridView
中的所有行和列。
dataGridView1.Clear();
3. Refresh()
方法
刷新 DataGridView
,使其重新绘制并显示最新的数据。
dataGridView1.Refresh();
4. Sort()
方法
对 DataGridView
中的列进行排序。
// 按 Name 列升序排序
dataGridView1.Sort(dataGridView1.Columns["Name"], ListSortDirection.Ascending);
5. ClearSelection()
方法
取消所有选中的单元格、行或列。
dataGridView1.ClearSelection();
6. BeginEdit()
方法
将当前单元格置于编辑模式。
// 将第一行第一列的单元格置于编辑模式
dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0];
dataGridView1.BeginEdit(true);
7. EndEdit()
方法
结束当前单元格的编辑并提交更改。
dataGridView1.EndEdit();
8. CommitEdit()
方法
提交当前单元格的编辑并应用更改。
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
9. CancelEdit()
方法
取消当前单元格的编辑并丢弃更改。
dataGridView1.CancelEdit();
10. SelectAll()
方法
选择 DataGridView
中的所有单元格。
dataGridView1.SelectAll();
11. GetCellCount()
方法
获取满足指定状态的单元格数量。
int selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
MessageBox.Show("Selected cells: " + selectedCellCount);
12. GetColumnCount()
方法
获取满足指定状态的列的数量。
int visibleColumnCount = dataGridView1.GetColumnCount(DataGridViewElementStates.Visible);
MessageBox.Show("Visible columns: " + visibleColumnCount);
13. GetRowCount()
方法
获取满足指定状态的行数。
int selectedRowCount = dataGridView1.GetRowCount(DataGridViewElementStates.Selected);
MessageBox.Show("Selected rows: " + selectedRowCount);
14. HitTest()
方法
获取鼠标点击位置的单元格信息。
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{var hitTestInfo = dataGridView1.HitTest(e.X, e.Y);MessageBox.Show($"Row: {hitTestInfo.RowIndex}, Column: {hitTestInfo.ColumnIndex}");
}
15. AutoResizeColumns()
方法
自动调整列的宽度以适应内容。
dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
16. AutoResizeRows()
方法
自动调整行的高度以适应内容。
dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
17. Add()
方法
动态添加列或行。
// 添加列
dataGridView1.Columns.Add("NewColumn", "New Column");// 添加行
dataGridView1.Rows.Add(4, "David", 28);
18. Remove()
方法
动态删除列或行。
// 删除列
dataGridView1.Columns.Remove("NewColumn");// 删除行
dataGridView1.Rows.RemoveAt(0); // 删除第一行
19. Insert()
方法
在指定位置插入行。
// 在第二行插入新行
dataGridView1.Rows.Insert(1, 5, "Eva", 22);
20. Copy()
方法
将选中的单元格内容复制到剪贴板。
dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
dataGridView1.SelectAll();
dataGridView1.Copy();
21. Paste()
方法
将剪贴板中的内容粘贴到选中的单元格。
dataGridView1.Paste();
22. Find()
方法
查找指定列中匹配值的行。
int rowIndex = -1;
foreach (DataGridViewRow row in dataGridView1.Rows)
{if (row.Cells["Name"].Value.ToString() == "Bob"){rowIndex = row.Index;break;}
}
if (rowIndex != -1)
{MessageBox.Show("Found Bob at row: " + rowIndex);
}
23. ScrollIntoView()
方法
滚动到指定的单元格。
dataGridView1.ScrollIntoView(dataGridView1.Rows[5].Cells[0]);
24. InvalidateCell()
方法
使指定单元格无效并强制重绘。
dataGridView1.InvalidateCell(0, 0); // 使第一行第一列的单元格无效
25. InvalidateRow()
方法
使指定行无效并强制重绘。
dataGridView1.InvalidateRow(0); // 使第一行无效
26. InvalidateColumn()
方法
使指定列无效并强制重绘。
dataGridView1.InvalidateColumn(0); // 使第一列无效
27. Update()
方法
强制重绘控件。
dataGridView1.Update();
28. Dispose()
方法
释放 DataGridView
占用的资源。
dataGridView1.Dispose();
29. Show()
和 Hide()
方法
显示或隐藏 DataGridView
。
dataGridView1.Show(); // 显示
dataGridView1.Hide(); // 隐藏
30. BringToFront()
和 SendToBack()
方法
调整 DataGridView
的 Z 轴顺序。
dataGridView1.BringToFront(); // 置顶
dataGridView1.SendToBack(); // 置底
三、DataTable作为DataGridView的数据源示例
1、代码示例:
将 DataTable 作为数据源赋值给 DataGridView 控件
using System;
using System.Data;
using System.Windows.Forms;namespace DataGridViewExample
{public partial class Form1 : Form{public Form1(){InitializeComponent();// 创建 DataTableDataTable dataTable = new DataTable();// 添加列dataTable.Columns.Add("ID", typeof(int));dataTable.Columns.Add("Name", typeof(string));dataTable.Columns.Add("Age", typeof(int));// 添加行dataTable.Rows.Add(1, "Alice", 23);dataTable.Rows.Add(2, "Bob", 30);dataTable.Rows.Add(3, "Charlie", 25);// 将 DataTable 赋值给 DataGridView 的数据源dataGridView1.DataSource = dataTable;// 设置 DataGridView 属性dataGridView1.ReadOnly = true; // 设置为只读dataGridView1.AllowUserToAddRows = false; // 禁止用户添加行dataGridView1.AllowUserToDeleteRows = false; // 禁止用户删除行dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 设置选择模式为整行选择dataGridView1.MultiSelect = false; // 禁止多选}private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e){// 处理单元格点击事件if (e.RowIndex >= 0){DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];MessageBox.Show("You clicked on: " + row.Cells["Name"].Value.ToString());}}}
}
2. 代码说明
-
DataTable 创建:首先创建了一个
DataTable
对象,并添加了三列(ID、Name、Age)。 -
添加数据:通过
Rows.Add
方法向DataTable
中添加了三行数据。 -
绑定数据源:将
DataTable
赋值给DataGridView
的DataSource
属性,这样数据就会显示在DataGridView
中。 -
设置属性:设置了
DataGridView
的一些常用属性,如ReadOnly
、AllowUserToAddRows
、SelectionMode
等。 -
事件处理:处理了
CellClick
事件,当用户点击某个单元格时,会弹出一个消息框显示该行的Name
列的值。
3.总结
通过以上代码示例,可以轻松地将 DataTable
作为数据源绑定到 DataGridView
控件,并通过设置属性和处理事件来实现更复杂的功能。
相关文章:
C#学习之DataGridView控件
目录 一、DataGridView控件常用属性、方法、事件汇总表 1. 常用方法、属性和事件汇总 二、DataGridView 控件的常用方法调用 1. DataBind() 方法 2. Clear() 方法 3. Refresh() 方法 4. Sort() 方法 5. ClearSelection() 方法 6. BeginEdit() 方法 7. EndEdit() 方法…...
midjourney 一 prompt 提示词
midjourney 不需要自然语言的描述,它只需要关键词即可。 一个完整的Midjourney prompt通常包括三个部分 图片提示(Image Prompts)、文本提示(Text Prompt)和参数(Parameters)。 1、图片提示(…...
谈谈 wait 和 notify
目录 1 wait()方法 2 notify()⽅法 3 wait 和 sleep 的区别 多线程调度是随机的, 很多时候希望多个线程能够按照咱们规定的顺序来执行. 完成线程之间的配合工作. wait和notify就是一个用来协调线程顺序的重要工具. 这俩方法都是 Object 提供的方法. 随便找个对象࿰…...
250214-java类集框架
引言 类集框架本质上相当于是容器,容器装什么东西由程序员指定 1.单列集合 单列集合是list和set,list的实现类有ArrayList和LinkedList,前者是数组实现,后者是链表实现。list和set,前者有序、可重复,后者…...
Python学习心得异常处理
有些代码在操作的过程当中,如果不注意其所限定的条件,可能在输入函数值时引发一些程序的报错,这样为了让代码自己能做到抛除异常操作的情况,就得让代码具有排除异常的能力。下面的一些操作就使得代码具有该功能,处理异…...
【机器学习】线性回归 多项式线性回归
【机器学习系列】 KNN算法 KNN算法原理简介及要点 特征归一化的重要性及方式线性回归算法 线性回归与一元线性回归 线性回归模型的损失函数 多元线性回归 多项式线性回归 多项式线性回归 V1.0多项式回归多项式回归的公式 特征代换超越函数作为特征向量维度 V1.0 多项式回归 …...
链表和list
链表和list 算法题中的经典操作:用空间代替时间 双链表头插顺序: 1.先修改新结点的左右指针 2.然后修改结点y的左指针 3.最后修改哨兵位的右指针 双链表在任意位置(p)之后插入…...
vscode的一些实用操作
1. 焦点切换(比如主要用到使用快捷键在编辑区和终端区进行切换操作) 2. 跳转行号 使用ctrl g,然后输入指定的文件内容,即可跳转到相应位置。 使用ctrl p,然后输入指定的行号,回车即可跳转到相应行号位置。...
sass中@import升级@use的使用区别与案例
在 Sass 中,import 和 use 都用于模块化代码,但二者有显著区别。以下是主要差异和具体案例说明: 核心区别对比 特性 import (旧版) use (新版) 作用域 全局作用域(变量/混合易冲突) 局部作用域(需通过…...
基于单片机ht7038 demo
单片机与ht7038 demo,三相电能表,电量数据包括电流电压功能,采用免校准方法 列表 ht7038模块/CORE/core_cm3.c , 17273 ht7038模块/CORE/core_cm3.h , 85714 ht7038模块/CORE/startup_stm32f10x_hd.s , 15503 ht7038模块/CORE/startup_stm32…...
基于YOLO11深度学习的胃肠道息肉智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构
CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构 // Set up saved column state only if the saved state // contains information other than "nothing". if (_hdsaColumnStates) { UINT cStates DSA_GetItemCount(_hdsaColumnS…...
商淘云中英文外贸电商系统,助力传统企业杨帆出海
在全球经济一体化的浪潮下,传统企业纷纷渴望拓展海外市场,寻求新的增长机遇。然而,语言障碍、复杂的跨境交易流程、多元的支付体系以及迥异的消费习惯,如同重重壁垒,阻碍着传统企业扬帆出海的步伐。此时,商…...
--- Mysql事务 ---
什么是事务 因为事务的存在,可以使得多条sql语句一起执行,并且只有全部执行成功或全部执行失败俩种结果,保证了数据的安全,也使得这些sql语句拥有了原子性,隔离性,一致性,持久性(AC…...
FreeRTOS第7篇:内存的“精打细算”——堆管理与内存分配
文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 引言:嵌入式系统的“仓库管理员” 想象你是一家繁忙仓库的管理员:货物(内存块)需要被高效存取,货架(堆空间)必须避免…...
有效市场理论(Efficient Market Hypothesis,简称 EMH):市场真的“有效”吗?中英双语
有效市场理论(EMH):市场真的“有效”吗? 1. 什么是有效市场理论? 📌 有效市场理论(Efficient Market Hypothesis,简称 EMH) 是由美国经济学家 尤金法玛(Eug…...
STM32 HAL库USART串口中断编程:演示数据丢失
目录 一、开发环境 二、配置STM32CubeMX 三、代码实现与部署 四、运行结果: 五、注意事项 上面讨论过,HAL_UART_Receive最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,本文介绍STM32F103 HAL库函数…...
MapReduce的工作原理及其在大数据处理中的应用
MapReduce是一种由Google提出的面向大数据并行处理的计算模型、框架和平台,它通过将复杂的数据处理任务分解为两个简单的阶段——Map(映射)和Reduce(归约),实现了分布式并行计算,极大地提高了数…...
python学opencv|读取图像(六十六)使用cv2.minEnclosingCircle函数实现图像轮廓圆形标注
【1】引言 前序学习过程中,已经掌握了使用cv2.boundingRect()函数实现图像轮廓矩形标注,相关文章链接为:python学opencv|读取图像(六十五)使用cv2.boundingRect()函数实现图像轮廓矩形标注-CSDN博客 这篇文章成功在图…...
SpringCloud系列教程:微服务的未来(二十四)Direct交换机、Topic交换机、声明队列交换机
前言 在现代消息队列系统中,交换机是实现消息传递和路由的核心组件。本文将重点探讨三种常见的交换机类型:Direct交换机、Topic交换机和声明队列交换机。通过对这三种交换机的详细分析,我们将学习它们的工作原理、应用场景以及如何在实际项目…...
云创智城充电系统:基于 SpringCloud 的高可用、可扩展架构详解-多租户、多协议兼容、分账与互联互通功能实现
在新能源汽车越来越普及的今天,充电基础设施的管理和运营变得越来越重要。云创智城充电系统,就像一个超级智能管家,为新能源充电带来了全新的解决方案,让充电这件事变得更方便、更高效、更安全。 一、厉害的技术架构,让…...
iOS事件传递和响应
背景 对于身处中小公司且业务不怎么复杂的程序员来说,很多技术不常用,你可能看过很多遍也都大致了解,但是实际让你讲,不一定讲的清楚。你可能说,我以独当一面,应对自如了,但是技术的知识甚多&a…...
时间序列分析(四)——差分运算、延迟算子、AR(p)模型
此前篇章: 时间序列分析(一)——基础概念篇 时间序列分析(二)——平稳性检验 时间序列分析(三)——白噪声检验 一、差分运算 差分运算的定义:差分运算是一种将非平稳时间序列转换…...
OpenCV机器学习(6)朴素贝叶斯分类器(Naive Bayes Classifier)cv::ml::NormalBayesClassifier的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::ml::NormalBayesClassifier 是 OpenCV 机器学习模块中的一部分,用于实现朴素贝叶斯分类器(Naive Bayes Classifier&a…...
Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
目录 前言1. nginx配置2. 配置minio(Demo要点)3. 实战要点3.1 前端配置3.2 后端配置3.3 应用前言 如何在ruoyi-vue-pro上使用minio上传文件,通过Ngnix再次转发路径 相关的minio推荐阅读: 云服务器中的MinIO 配置 HTTPS 过程(图文)详细分析Java中的Minio类各API(附win配…...
python黑帽子第二版netcat分析
源码 import argparse import socket import shlex import subprocess import sys import textwrap import threadingdef execute(cmd):cmd cmd.strip()if not cmd:returnoutput subprocess.check_output(shlex.split(cmd), stderrsubprocess.STDOUT)return output.decode()…...
【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决
问题描述 我们将Debug版本的安装包发送到手机上安装,会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码: android.injected.testOnlyfalse 最后点击“Sync now”,等待重新加载gradle资源即可 后面我们重新编译Debug安装…...
dify实现分析-rag-文档内容提取
dify实现分析-rag-文档内容提取 概述 在文章《dify实现原理分析-上传文件创建知识库总体流程》中已经介绍了,文件上传后索引构建的总体流程,本文介绍其中的“Extract: 提取文档内容:这里会按段落或整页来获取文档内容”步骤的实现。 这一步的主要功能…...
腾讯云API+chatbox
腾讯云的限时免费接口:知识引擎原子能力 对话-原子能力相关接口-API 中心-腾讯云 本接口调用DeepSeek系列模型限时免费。即日至北京时间2025年2月25日23:59:59,所有腾讯云用户均可享受DeepSeek-V3、DeepSeek-R1模型限时免费服务,单账号限制接…...
sql查询null的时候
SELECT * FROM scm_sku_stock WHERE SKU_CODEGOS2310251620452226 and CONSIGNOR_USER_CODE is null 在 SQL 中,NULL 是一个特殊的值,表示“没有值”或“未知值”。在比较时,NULL 不能直接用 或 ! 来比较。相反,你需要使用 IS N…...
BitLocker技巧与经验
初级代码游戏的专栏介绍与文章目录-CSDN博客 BitLocker是windows默认的存储加密方案,用好了很安全,用错了完蛋。以下来自我的使用经验。 目录 可以加密移动设备 可以加密操作系统分区 TPM是个坑 一定要用微软账号登录并将密钥保存在账号里 不建议使…...
Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档
Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档 本文将对七个流行的定时任务调度库:node-cron、rxjs、bull、node-schedule、agenda、bree、cron。这些库都可以用来处理定时任务,但它们的特点和适用场景有所不同。我们将从…...
数据结构——二叉树(2025.2.12)
目录 一、树 1.定义 (1)树的构成 (2)度 2.二叉树 (1)定义 (2)二叉树的遍历 (3)遍历特性 二、练习 1.二叉树 (1)创建二叉树…...
OpenCV机器学习(5)逻辑回归算法cv::ml::LogisticRegression
OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::ml::LogisticRegression 是 OpenCV 机器学习模块中的一个类,用于实现逻辑回归算法。逻辑回归是一种广泛应用于分类问题的统计方法,特别适合二分类任务。…...
matlab 汽车abs的模糊pid和pid控制仿真
1、内容简介 matlab145-汽车abs的模糊pid和pid控制仿真 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略基于模糊控制的汽车ABS系统仿真研究_刘志敏.caj 汽车ABS模糊控制方法的分析与仿真_李林.caj 汽车ABS模糊控制方法的研究_王文竹.pdf 汽车ABS…...
Flutter 正在推进全新 PlatformView 实现 HCPP, 它又用到了 Android 上的什么黑科技
跨平台开发里的 PlatformView 实现一直是一个经久不衰的话题,在之前的 《深入 Flutter 和 Compose 的 PlatformView 实现对比》 我们就详细聊过 Flutter 和 Compose 在 PlatformView 实现上的异同之处,也聊到了 Compose 为什么在相同实现上对比 Flutter …...
VAS1260IB05E 集成内部开关驱动器的汽车级LED硬灯带高效解决方案
VAS1260IB05E LED芯片是一种连续模式电感降压转换器,设计用于从高于LED电压的电压源高效驱动单个或多个串联连接的LED。该设备在5V至60V之间的输入电源下工作,并提供高达1.2A的外部可调输出电流。包括输出开关和高侧输出电流感测电路,该电路使…...
5.【线性代数】—— 转置,置换和向量空间
五 转置,置换和向量空间 1. 置换矩阵2. 转置矩阵3. 对称矩阵4. 向量空间4.1 向量空间4.2 子空间 1. 置换矩阵 定义: 用于行互换的矩阵P。 之前进行ALU分解时,可能存在该行主元为0,要进行行互换,即PALU 性质࿱…...
前端如何实现一个五星评价,鼠标滑动,前边星星颜色的变黄,后边的不变;
直接上代码 <!DOCTYPE html> <html> <head> <style> .star-rating {display: flex;padding: 10px 0; }.star {position: relative;width: 40px;height: 40px; }.half {position: absolute;top: 0;width: 20px;height: 40px;overflow: hidden;font-siz…...
等差数列有几项--INT_MAX【#include <climits>】
等差数列 题目代码INT_MAX的使用 题目 代码 #include <iostream> #include <vector> #include <string> #include <algorithm> #include <math.h> #include <queue> #include <climits> // 包含INT_MAX常量 #include <cctype&g…...
Linux /dev/null
/dev/null 是 Linux 和类 Unix 系统中一个特殊且非常有用的设备文件,也被称为空设备。下面为你详细介绍它的特点、用途和使用示例。 特点 写入丢弃:当向 /dev/null 写入数据时,这些数据会被立即丢弃,不会被保存到任何地方&#…...
计算机视觉-尺度不变区域
一、尺度不变性 1.1 尺度不变性 找到一个函数,实现尺度的选择特性。 1.2 高斯偏导模版求边缘 1.3 高斯二阶导 用二阶过零点检测边缘 高斯二阶导有两个参数:方差和窗宽(给定方差可以算出窗宽) 当图像与二阶导高斯滤波核能匹配…...
串的基本操作--数据结构
目录 一、串的基本概述 二、串的存储结构 2.1定义属性存储结构 串长有两种表示方法: 1、用一个额外的变量length来存放串的长度; 2、串值后面加一个不计入串长的结束标记字符“\0”,此时的串长为隐含值。 2.2堆的顺序存储结构 三、串的基本操…...
C++17 数学特殊函数:探索标准库中的强大工具
文章目录 1. 什么是数学特殊函数?2. C17 中的特殊函数2.1 贝塞尔函数2.2 勒让德函数2.3 椭圆积分2.4 伽马函数2.5 误差函数 3. 实际应用场景3.1 科学计算3.2 工程应用3.3 数据分析 4. 总结 在 C17 中,标准库引入了一系列数学特殊函数,这些函数…...
多模态特征提取与融合助力高光谱+LiDAR数据分类性能飞跃
目录 论文解读 总体架构 CMIIE 模块工作模式 MLFFC模块工作模式 论文解读 提出了一种新的多模态特征提取模块CMIIE,可以捕获高光谱和LiDAR数据之间的互补信息。设计了一个多层特征融合分类模块MLFFC,通过对不同层级的特征进行融合来提高分类性能。使用对抗学习策略来指导网…...
内容中台重构企业内容管理流程驱动智能协作升级
内容概要 内容中台作为企业数字化转型的核心基础设施,通过技术架构革新与功能模块整合,重构了传统内容管理流程的底层逻辑。其核心价值在于构建动态化、智能化的内容生产与流转体系,将分散的创作、存储、审核及分发环节纳入统一平台管理。基…...
网络安全攻防演练——RT实战技巧篇
前言 又是一年hw招聘季,每年hw行动都会吸引大量网络安全从业者参加。同时也会有很多热爱网络安全但无从下手的网安爱好者参与。笔者旨在对网络安全有想法但是没有方向的师傅做一个简单的方向的了解,让师傅有方向去学习。 RT(红队) 1.引入 首先红队的…...
【MySQL】第六弹---数据库表约束详解:从空属性到主键的全方位指南
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】 目录 1. 表的约束 1.1 空属性 1.2 默认值 1.3 列描述 1.4 zerofill 1.5 主键 1. 表的约束 真正约束字段的是数据类型&…...
JMeter工具介绍、元件和组件的介绍
Jmeter功能概要 JDK常用文件目录介绍 Bin目录:存放可执行文件和配置文件 Docs目录:是Jmeter的API文档,用于开发扩展组件 printable_docs目录:用户帮助手册 lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包…...
vue3 在element-plus表格使用render-header
在vue2中 element表格render-header 源码是有返回h()函数的 在vue3 element-plus 表格源码 render-header函数没有返回h函数了 所以需要用render-header方法中创建虚拟DOM节点的话需要引用h方法 <el-table-column header-align"right" align"right" …...