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

STL_vector_01_基本用法

  • 👋 Hi, I’m liubo
  • 👀 I’m interested in harmony
  • 🌱 I’m currently learning harmony
  • 💞️ I’m looking to collaborate on …
  • 📫 How to reach me …
  • 📇 sssssdsdsdsdsdsdasd
  • 🎃 dsdsdsdsdsddfsgdgasd
  • 🍺 jyukyuiyuiyuigkasd
  • 🍥 fsdfgdsgsdgdgadsa
  • ✨ xcvxcvxcvxcvdasdaasd
  • 🍰 dazdsxasxsaxsaasdsa
  • 🚨 gdfgdshdfhfhygjtyu

vector模板是STL(Standard Template Library,标准模板库)中的一个容器类,使用方法类似数组。

使用时包含头文件:

#include<vector>

一、vector的构造函数

函数原型:

vector<T> v ; //使用模板类,默认构造函数
vextor<T> v(n,elem); //将n个elem拷贝给本身
vector<T> v(const vector &v) ; //拷贝构造函数
vector<T> v(v.begin(),v.end()); //将[v.begin(),v.end())区间中的元素拷贝给本身,注意左闭右开

使用示例:

#include <stdio.h>   // C语言的标准库,包含C语言流操作 printf等
#include <string.h>  // C语言的标准库,包含字符串处理操作 strcpy等
#include <unistd.h>  // pause()头文件
#include <iostream>  // 包含输入和输出操作#include <vector>using std::cin;
using std::cout;
using std::endl;
using std::vector;// vector的遍历
void printVector(vector<int>& v)
{	//利用迭代器打印 vfor (vector<int>::iterator it = v.begin(); it != v.end(); ++it){cout << *it << " ";}cout << endl;
}int main()
{printf("--------------------begain-------------------\n");int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};vector<int> first;                                 // 创建一个值类型为int的空vectorvector<int> second(10);                            // 创建一个10个int的vector,且每个元素初值为0vector<int> third(10, 1);                          // 创建一个10个int的vector,且每个元素初值为1vector<int> forth(third);                          // third temp 拷贝给vector forth ,两者元素值完全相同vector<int> fifth(a, a + 10);                      // 从数组区间[a[0], a[10])中获得初值,注意左闭右开,a[10]无意义这里助于理解vector<int> sixth(fifth.begin(), fifth.end() - 5); // temp [temp.begin(),temp.end()-5)区间的元素赋给fifth,注意左闭右开vector<int> seventh = { -1, 0, 3, 5, 7, 9};        // 列表初始化cout << "first: ";printVector(first);cout << "second: ";printVector(second);cout << "third: ";printVector(third);cout << "forth: ";printVector(forth);cout << "fifth: ";printVector(fifth);cout << "sixth: ";printVector(sixth);cout << "seventh: ";printVector(seventh);printf("--------------------end----------------------\n");// cin.get();// getchar();// pause();return EXIT_SUCCESS;
}

测试结果:

--------------------begain-------------------
first: 
second: 0 0 0 0 0 0 0 0 0 0 
third: 1 1 1 1 1 1 1 1 1 1 
forth: 1 1 1 1 1 1 1 1 1 1 
fifth: 0 1 2 3 4 5 6 7 8 9 
sixth: 0 1 2 3 4 
seventh: -1 0 3 5 7 9 
--------------------end----------------------

二、vector的遍历

方法1:

void printVector(vector<int>& v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); ++it){cout << *it << " ";}cout << endl;
}

迭代器iterator中的begin和end函数是左闭右开的区间。

方法2:

void printVector(vector<int> &v)
{ for (auto n : v){cout << n << " ";}cout << endl;
}

三、vector的赋值操作

函数原型:

vector& operator=(const vector &v); //重载赋值运算符
assign(v.begin(),v.end());          //将[v.begin(),v.end())区间中的元素赋值给本身
assign(n,elem);                     //将n个elem赋值给本身int myints[];
third.assign (myints,myints+3);   // assigning from array.

assign: 将新内容赋给vector,替换其当前内容,并相应地修改其大小。

使用示例:

#include <stdio.h>   // C语言的标准库,包含C语言流操作 printf等
#include <iostream>  // 包含输入和输出操作
#include <string.h>  // C语言的标准库,包含字符串处理操作 strcpy等
#include <unistd.h>  // pause()头文件
#include <vector>using std::cin;
using std::cout;
using std::endl;
using std::vector;// vector的遍历
void printVector(vector<int> &v)
{for (auto n : v){cout << n << " ";}cout << endl;
}int main()
{printf("--------------------begain-------------------\n");vector<int> first = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};cout << "first: ";printVector(first);//操作符 = 赋值vector<int> second;second = first;cout << "second: ";printVector(second);// assign 函数赋值,使用迭代器vector<int> third(10, 1);cout << "third1: ";printVector(third);third.assign(first.begin(), first.end() - 5); // 把first除后五个值之外值赋给third,其余值删除,左闭右开cout << "third2: ";printVector(third);// assign 函数赋值,使用数值vector<int> forth(10, 1);cout << "forth1: ";printVector(forth);forth.assign(5, 9); // 把5个9赋给 forth,其余值删除cout << "forth2: ";printVector(forth);// assign 函数赋值,使用数组vector<int> fifth(10, 1);cout << "fifth1: ";printVector(fifth);int myints[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};fifth.assign(myints, myints + 5); //把 myints 前五个值赋给fifth,fifth左闭右开cout << "fifth2: ";printVector(fifth);printf("--------------------end----------------------\n");// cin.get();// getchar();// pause();return EXIT_SUCCESS;
}

测试结果:

--------------------begain-------------------
first: 0 1 2 3 4 5 6 7 8 9 
second: 0 1 2 3 4 5 6 7 8 9 
third1: 1 1 1 1 1 1 1 1 1 1 
third2: 0 1 2 3 4 
forth1: 1 1 1 1 1 1 1 1 1 1 
forth2: 9 9 9 9 9 
fifth1: 1 1 1 1 1 1 1 1 1 1 
fifth2: 0 1 2 3 4 
--------------------end----------------------

四、vector的元素访问

函数原型:

at(int idx);    //返回索引idx所指的数据,如果idx越界,抛出out_of_range异常。
operator[idx];  //返回索引idx所指的数据,如果idx越界,运行直接报错
front();        //返回容器中第一个数据元素
back();         //返回容器中最后一个数据元素

使用示例:

#include <stdio.h>   // C语言的标准库,包含C语言流操作 printf等
#include <iostream>  // 包含输入和输出操作
#include <string.h>  // C语言的标准库,包含字符串处理操作 strcpy等
#include <unistd.h>  // pause()头文件
#include <vector>using std::cin;
using std::cout;
using std::endl;
using std::vector;int main()
{printf("--------------------begain-------------------\n");int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};vector<int> v_test(a, a + 10);cout << "调用at,打印 v_test: ";for (int i = 0; i < v_test.size(); i++){cout << v_test.at(i) << " ";}cout << endl;cout << "调用[],打印 v_test: ";for (int i = 0; i < v_test.size(); ++i){cout << v_test[i] << " "; // 调用2}cout << endl;cout << "容器中第一个元素是:" << v_test.front() << endl;cout << "容器中最后一个元素是:" << v_test.back() << endl;printf("--------------------end----------------------\n");// cin.get();// getchar();// pause();return EXIT_SUCCESS;
}

测试结果:

--------------------begain-------------------
调用at,打印 v_test: 0 1 2 3 4 5 6 7 8 9 
调用[],打印 v_test: 0 1 2 3 4 5 6 7 8 9 
容器中第一个元素是:0
容器中最后一个元素是:9
--------------------end----------------------

五、vector的元素插入

函数原型:

push_back(ele); //尾部插入元素ele
insert(const_iterator pos,ele); //在迭代器指向的位置pos处插入一个元素ele
insert(const_iterator pos,int count,ele); //在迭代器指向的位置pos处插入count个元素ele

push_back: 在vector当前最后一个元素的末尾添加一个新元素。val的内容被复制(或移动)到新元素中。

将容器大小增加了1,当且仅当新vector大小 > 当前vector容量时,会自动重新分配存储空间。

使用示例:

using std::cin;
using std::cout;
using std::endl;
using std::vector;// vector的遍历
void printVector(vector<int> &v)
{for (auto n : v){cout << n << " ";}cout << endl;
}int main()
{printf("--------------------begain-------------------\n");int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};vector<int> v_test(a, a + 10);for (int i = 0; i < 3; ++i){v_test.push_back(10);//尾部插入3个10}cout << "在尾部插入3个10,打印 v_test: ";printVector(v_test);v_test.insert(v_test.begin(), 10); //在首位插入10cout << "在第首位插入10,打印 v_test: ";printVector(v_test);v_test.insert(v_test.begin(), 2, 20);//在首位插入2个20cout << "在首位插入2个20,打印 v_test: ";printVector(v_test);v_test.insert(v_test.begin() + 3,30); //在第3位后面插入30cout << "在第3位后面插入30,打印 v_test: ";printVector(v_test);v_test.insert(v_test.begin() + 4, 2, 40); //在第4位后面插入2个40cout << "在第4位后面插入2个40,打印 v_test: ";printVector(v_test);v_test.insert(v_test.end() - 3, 2, 50);//在倒数第3位前面插入2个50cout << "在倒数第3位前面插入2个50,打印 v_test: ";printVector(v_test);printf("--------------------end----------------------\n");// cin.get();// getchar();// pause();return EXIT_SUCCESS;
}

测试结果:

--------------------begain-------------------
在尾部插入3个10,打印 v_test: 0 1 2 3 4 5 6 7 8 9 10 10 10 
在第首位插入10,打印 v_test: 10 0 1 2 3 4 5 6 7 8 9 10 10 10 
在首位插入2个20,打印 v_test: 20 20 10 0 1 2 3 4 5 6 7 8 9 10 10 10 
在第3位后面插入30,打印 v_test: 20 20 10 30 0 1 2 3 4 5 6 7 8 9 10 10 10 
在第4位后面插入2个40,打印 v_test: 20 20 10 30 40 40 0 1 2 3 4 5 6 7 8 9 10 10 10 
在倒数第3位前面插入2个50,打印 v_test: 20 20 10 30 40 40 0 1 2 3 4 5 6 7 8 9 50 50 10 10 10 
--------------------end----------------------

六、vector的元素删除

函数原型:

pop_back(); //删除最后一个元素
erase(const_iterator pos); //删除迭代器指向的元素
erase(const_iterator begin,const_iterator end); //删除迭代器从begin到end之间的元素
clear(); //删除容器中所有元素

使用示例:

#include <stdio.h>   // C语言的标准库,包含C语言流操作 printf等
#include <iostream>  // 包含输入和输出操作
#include <string.h>  // C语言的标准库,包含字符串处理操作 strcpy等
#include <unistd.h>  // pause()头文件
#include <vector>using std::cin;
using std::cout;
using std::endl;
using std::vector;// vector的遍历
void printVector(vector<int> &v)
{for (auto n : v){cout << n << " ";}cout << endl;
}int main()
{printf("--------------------begain-------------------\n");vector<int> v_test = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};// 使用 pop_back 删除最后一个元素v_test.pop_back();cout << "使用 pop_back 删除最后一个元素后,打印v_test: ";printVector(v_test);// 使用 erase 删除首个元素v_test = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};v_test.erase(v_test.begin());cout << "使用 erase 删除首个元素,打印v_test: ";printVector(v_test);// 使用 erase 删除第二个元素v_test = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};v_test.erase(v_test.begin() + 1);cout << "使用 erase 删除第二个元素,打印v_test: ";printVector(v_test);// 使用 erase 删除全部元素v_test = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};v_test.erase(v_test.begin(), v_test.end());cout << "使用 erase 删除全部元素,打印v_test: ";printVector(v_test);// 使用 erase 删除前三个元素v_test = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};v_test.erase(v_test.begin(), v_test.begin() + 3);cout << "使用 erase 删除前三个元素,打印v_test: ";printVector(v_test);// 使用 erase 删除后三个元素v_test = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};v_test.erase(v_test.end() - 3, v_test.end());cout << "使用 erase 删除后三个元素,打印v_test: ";printVector(v_test);// 使用 erase 删除前三个后三个之外的元素v_test = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};v_test.erase(v_test.begin() + 3, v_test.end() - 3);cout << "使用 erase 删除前三个后三个之外的元素,打印v_test: ";printVector(v_test);// 使用 clear 删除全部元素v_test = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};v_test.clear(); // 调用7,清空所有元素cout << "使用 clear 删除全部元素,打印v_test: ";printVector(v_test);printf("--------------------end----------------------\n");// cin.get();// getchar();// pause();return EXIT_SUCCESS;
}

测试结果:

--------------------begain-------------------
使用 pop_back 删除最后一个元素后,打印v_test: 0 1 2 3 4 5 6 7 8 
使用 erase 删除首个元素,打印v_test: 1 2 3 4 5 6 7 8 9 
使用 erase 删除第二个元素,打印v_test: 0 2 3 4 5 6 7 8 9 
使用 erase 删除全部元素,打印v_test: 
使用 erase 删除前三个元素,打印v_test: 3 4 5 6 7 8 9 
使用 erase 删除后三个元素,打印v_test: 0 1 2 3 4 5 6 
使用 erase 删除前三个后三个之外的元素,打印v_test: 0 1 2 7 8 9 
使用 clear 删除全部元素,打印v_test: 
--------------------end----------------------

七、总结

以上就是今天要讲的内容,后续会有更多内容。

八、参考资料

版权声明:本文参考了其他资料和CSDN博主的文章,遵循CC 4.0 BY-SA版权协议,现附上原文出处链接及本声明。

  1. https://blog.csdn.net/qq_52324409/article/details/121000029




















相关文章:

STL_vector_01_基本用法

&#x1f44b; Hi, I’m liubo&#x1f440; I’m interested in harmony&#x1f331; I’m currently learning harmony&#x1f49e;️ I’m looking to collaborate on …&#x1f4eb; How to reach me …&#x1f4c7; sssssdsdsdsdsdsdasd&#x1f383; dsdsdsdsdsddfsg…...

css2学习总结之尚品汇静态页面

css2总结之尚品汇 一、布局 在 PC 端网页中&#xff0c;一般都会有一个固定宽度且水平居中的盒子&#xff0c;来显示网页的主要内容&#xff0c;这是网页 的版心。 版心的宽度一般是 960 ~ 1200 像素之间。 版心可以是一个&#xff0c;也可以是多个。 二、布局相关名词 我…...

Lua 第5部分 表

表&#xff08; Table &#xff09;是 Lua 语言中最主要&#xff08;事实上也是唯一的&#xff09;和强大的数据结构。 使用表&#xff0c;Lua语言可以以一种简单、统一且高效的方式表示数组、集合、记录和其他很多数据结构。 Lua语言也使用表来表示包&#xff08; package &am…...

01分数规划

https://ac.nowcoder.com/acm/contest/22353/1011 并不需要高级数据结构&#xff0c;对答案二分即可。 假定当前二分的答案为 x x x&#xff0c;则 ∑ v i ∑ w i ≥ x \frac{ \sum_{v_i} }{\sum_{w_i}} ≥ x ∑wi​​∑vi​​​≥x 成立时 x x x 才可能是最后的答案。 化简式…...

无人机动力系统全维度解析:技术演进、选型策略与未来趋势

一、动力系统技术理念与设计逻辑 &#xff08;一&#xff09;核心技术指标 能量密度&#xff1a;决定续航能力的关键参数&#xff0c;单位为 Wh/kg。当前主流锂聚合物电池能量密度约 250-300Wh/kg&#xff0c;氢燃料电池可达 500-800Wh/kg&#xff0c;航空燃油则高达 12,000W…...

重新审视中国的GB标准(44495 – 44497)

此前&#xff0c;我们深入探讨了中国新推出的智能互联汽车(ICV)网络安全标准GB Standard 44495-2024。我们探讨了该标准对汽车制造商的影响、与UNECE R155和ISO/SAE 21434等全球标准的一致性&#xff0c;以及该标准对未来汽车网络安全的意义。 然而&#xff0c;GB 44495-2024并…...

Linux进程控制(五)之做一个简易的shell

文章目录 做一个简易的shell预备知识代码实现运行结果 做一个简易的shell 重谈Shell shell是操作系统的一层外壳程序&#xff0c;帮我们用户执行指令&#xff0c; 获取到指令后&#xff0c;交给操作系统&#xff0c;操作系统执行完后&#xff0c;把执行结果通过shell交给用户…...

Apache Kafka全栈技术解析

目录 第一章 Kafka概述与核心价值 1.1 消息队列的演进与Kafka的诞生 1.2 Kafka的核心应用场景 1.3 Kafka生态全景图 第二章 Kafka核心概念与架构解析 2.1 核心概念深度剖析 2.2 Kafka架构设计精要 第三章 Kafka环境搭建与配置 3.1 单机部署实战 3.2 集群部署最佳实践 …...

结合 Flink/Spark 进行 AI 大数据处理(实时数据 + AI 推理的应用场景)

随着企业对实时智能决策的需求日益增强,将 Flink / Spark 等流批计算框架 与 大模型推理能力相结合,正在成为 AI 工业化落地的重要实践路径。本篇文章将深入介绍如何将 AI 模型集成到大数据流处理系统中,实现实时感知、智能判断与自动反馈。 1. 为什么需要“实时数据 + AI 推…...

开发PDF时,如何比较 PDF 文件

在 PDF 论坛上&#xff0c;“如何比较 PDF 文件”是一个经常被提到的问题。在开始之前&#xff0c;重要的是要明确你想要比较的内容是什么。 不同的 PDF 文件可能看起来一样吗&#xff1f; 是的&#xff0c;可能。不同的 PDF 创建工具可能会生成在视觉上完全相同的页面&#x…...

自动提取pdf公式 ➕ 输出 LaTeX

# 创建打包脚本的主内容 script_content """ from doc2x.extract_formula import extract_formula_imgs from pix2text import Pix2Text from PIL import Image import osdef main():pdf_path "your_file.pdf" # 将你的PDF命名为 your_file.pdf 并…...

abaqus二次开发python程序集

abaqus二次开发python程序集 1、设置字体背景色等2、读取模态频率并写入 csv 文件3、在两个窗口快速对比各价模态 1、设置字体背景色等 # _*_ coding:UTF-8 _*_from abaqusConstants import* def fontsize(sessionNone):#设置字体session.viewports[Viewport: 1].viewportAnno…...

高级java每日一道面试题-2025年3月23日-微服务篇[Nacos篇]-如何使用Nacos进行服务发现?

如果有遗漏,评论区告诉我进行补充 面试官: 如何使用Nacos进行服务发现&#xff1f; 我回答: 在Java高级面试中讨论如何使用Nacos进行服务发现时&#xff0c;可以从多个角度深入探讨&#xff0c;包括基本概念、配置步骤、代码示例以及高级特性。以下是综合了多种信息的详细回…...

k8s核心资源对象一(入门到精通)

本文将深入探讨Kubernetes中的核心资源对象&#xff0c;包括Pod、Deployment、Service、Ingress、ConfigMap和Secret&#xff0c;详细解析其概念、功能以及实际应用场景&#xff0c;帮助读者全面掌握这些关键组件的使用方法。 一、pod 1 pod概念 k8s最小调度单元&#xff0c;…...

了解 DeepSeek R1

了解DeepSeek R1 R1探索纯强化学习是否可以在没有监督微调的情况下学会推理的能力。 ‘Aha’ Moment 这种现象有点类似于人类在解决问题时突然意识到的方式&#xff0c;以下是它的工作原理&#xff1a; 初始尝试&#xff1a;模型对解决问题进行初始尝试识别&#xff1a;识别…...

【C语言】大小端字节序和字节序判断

前言&#xff1a; 在上章介绍了整形在内存的储存&#xff0c;了解了原码&#xff0c;反码&#xff0c;补码&#xff0c;知道了整数在内存的储存一般是补码&#xff0c;解决了负数相加的问题。 那么在本章为大家讲解一下大小端字节序。 一那字节序是什么呢&#xff1f; 字节…...

DrissionPage移动端自动化:从H5到原生App的跨界测试

一、移动端自动化测试的挑战与机遇 移动端测试面临多维度挑战&#xff1a; 设备碎片化&#xff1a;Android/iOS版本、屏幕分辨率差异 混合应用架构&#xff1a;H5页面与原生组件的深度耦合 交互复杂性&#xff1a;多点触控、手势操作、传感器模拟 性能监控&#xff1a;内存…...

ARM 汇编启动代码详解:从中断向量表到中断处理

ARM 汇编启动代码详解&#xff1a;从中断向量表到中断处理 引言 在嵌入式系统开发中&#xff0c;ARM 处理器&#xff08;如 Cortex-A 系列&#xff09;的启动代码是系统初始化和运行的基础。启动代码通常包括中断向量表的创建、初始化硬件状态&#xff08;如关闭缓存和 MMU&a…...

笔试专题(七)

文章目录 乒乓球筐&#xff08;哈希&#xff09;题解代码 组队竞赛题解代码 删除相邻数字的最大分数&#xff08;线性dp&#xff09;题解代码 乒乓球筐&#xff08;哈希&#xff09; 题目链接 题解 1. 两个哈希表 先统计第一个字符串中的字符个数&#xff0c;再统计第二个字…...

React基础知识(一)

文章目录 概念特点React基本使用hello_react案例虚拟DOM的两种创建方式使用jsx创建使用js创建 虚拟DOM和真实DOM React jsxXMLjsx语法规则作用基本语法规则js语句和js代码babel.js作用 模块与组件模块组件 React面向组件编程函数式组件类组件 概念 react是一个将数据渲染为Htm…...

红黑树(Red-Black Tree)核心知识点与面试高频问题

红黑树&#xff08;Red-Black Tree&#xff09;核心知识点与面试高频问题 一、红黑树的核心性质 红黑树是一种自平衡的二叉搜索树&#xff0c;通过以下规则确保平衡性&#xff1a; 节点颜色&#xff1a;每个节点是红色或黑色。 根节点&#xff1a;根必须是黑色。 叶子节点&a…...

SpringBoot整合SSM

一、SpringBoot整合SSM SpringBoot整合SpringSpringBoot整合SpringMVCSpringBoot整合MyBatis&#xff08;主要&#xff09; 步骤一&#xff1a;创建SpringBoot工程&#xff0c;添加druid依赖 <!-- todo 1 添加druid连接池依赖--> <dependency><groupId>co…...

set/multiset容器

1.概念 所有元素会在插入时自动排序 set/multiset属于关联式容器&#xff0c;底层结构是用二叉树实现。 set不允许重复元素&#xff0c;multiset允许重复元素。 2. set构造和赋值 set<T> st; set(const set &st);// 拷贝构造函数 set& operator(const set &a…...

vim 编辑器 使用教程

Vim是一款强大的文本&#xff08;代码&#xff09;编辑器&#xff0c;它是由Bram Moolenaar于1991年开发完成。它的前身是Bill Joy开发的vi。名字的意义是Vi IMproved。 打开vim&#xff0c;直接在命令行输入vim即可&#xff0c;或者vim <filename>. Vim分为四种模式&a…...

去中心化固定利率协议

核心机制与分类 协议类型&#xff1a; 借贷协议&#xff08;如Yield、Notional&#xff09;&#xff1a;通过零息债券模型&#xff08;如fyDai、fCash&#xff09;锁定固定利率。 收益聚合器&#xff08;如Saffron、BarnBridge&#xff09;&#xff1a;通过风险分级或博弈论…...

Python高阶函数-filter

1. 基本概念 filter() 是Python内置的高阶函数&#xff0c;用于过滤序列中的元素。它接收一个函数和一个可迭代对象作为参数&#xff0c;返回一个迭代器&#xff0c;包含使函数返回True的所有元素。 filter(function, iterable)2. 工作原理 惰性计算&#xff1a;filter对象是…...

hive/doris查询表的创建和更新时间

hive查询表的创建和更新时间&#xff1a; SELECT d.NAME AS database_name, t.TBL_NAME AS table_name, FROM_UNIXTIME(t.CREATE_TIME) AS create_time, FROM_UNIXTIME(tp.PARAM_VALUE) AS last_ddl_time FROM metastore.TBLS t JOIN metastore.DBS d ON t.DB_ID d.DB_ID JOIN…...

40常用控件_WindowFrame的影响

window frame 的影响 如果 widget 作为一个窗口(带有标题栏,最小化,最大化,关闭按钮),那么在计算尺寸和坐标的 时候就有两种算法.包含 window frame 和 不包含 window frame. 其中x(),y0,frameGeometry(), pos(),move() 都是按照包含 window frame 的方式来计算 的. 其中 geome…...

PCB 赋能机器人技术革新:核心功能与前沿趋势

一、智能控制中枢的异构集成 采用 20 层刚挠结合板架构&#xff0c;搭载 NVIDIA Jetson AGX Orin SoC&#xff08;100TOPS 算力&#xff09;&#xff0c;集成 64 位 ARMv8 内核与 32GB 内存&#xff0c;实现多模态传感器数据融合与实时决策。板载 128MB DDR4 缓存支持 μs 级响…...

unity 环形UI菜单实现方法2

在项目中需要一个环形UI并且循环往复的效果&#xff0c;这个方法思路为提前预设好位置&#xff0c;让UI根据坐标预设的移动&#xff0c;然后使用mask遮罩达到循环往复效果的目的。 下图分别分为了三个列表 第一个列表poslist是提前预设的位置 第二个列表为背景暂时不用看 第三个…...

Redis进阶--主从复制

目录 一、引言 二、介绍 三、解决问题 四、配置主从复制 1.复制 全量复制&#xff1a; 部分复制&#xff1a; 实时复制&#xff1a; 五、总结 一、引言 本篇文章将继续介绍Redis中的主从复制机制 二、介绍 主从复制是在分布式系统中实现的&#xff0c;希望有多个服务器…...

Redisson分布式锁:原理、使用

1. Redisson简介 Redisson是一个基于Redis的Java客户端库&#xff0c;提供了丰富的分布式对象和服务&#xff08;如分布式锁、信号量、Map等&#xff09;。其核心优势在于​​简化分布式锁的实现​​&#xff0c;并解决了原生Redis分布式锁的常见问题&#xff08;如死锁、误删…...

Java设计模式之外观、享元、组合模式《三国争霸:模式风云录》

第一章&#xff1a;乱世起&#xff08;外观初现&#xff09; 黄巾余孽张角三兄弟操控"混沌子系统"&#xff0c;各地流民不堪996劳役。观国隐士诸葛孔明出山&#xff0c;在博望坡构建首个"军师智脑"&#xff1a; /​**​* 外观模式&#xff1a;军师智…...

设计模式之解释器模式:原理、实现与应用

引言 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一种语言的文法表示&#xff0c;并提供一个解释器来解释该语言中的句子。解释器模式适用于需要解析特定语法规则的场景&#xff0c;如正则表达式、SQL解析等。本文将深入…...

redis itheima

缓存问题 核心是如何避免大量请求到达数据库 缓存穿透 既不存在于 redis&#xff0c;也不存在于 mysql 的key&#xff0c;被重复请求 public Result queryById(Long id) {String key CACHE_SHOP_KEYid;// 1. redis & mysqlString shopJson stringRedisTemplate.opsFo…...

AF3 OpenFoldDataModule类setup方法解读

AlphaFold3 data_modules 模块的 OpenFoldDataLoader 类 setup 方法用于设置数据集的关键部分,负责根据不同的模式(训练、验证或预测)生成和初始化相应的数据集。 源代码: def setup(self, stage=None):# Most of the arguments are the same for the three datasets data…...

服务器报错:xxx/libc.so.6: version `GLIBC_2.32‘ not found

/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32 not found (required by ./aima-sim-app-main) 解决思路 根据错误信息&#xff0c;您的应用程序 aima-sim-app-main 和 libmujoco.so.3.1.6 库依赖于较新的 GNU C Library (glibc) 版本&#xff08;如 GLIBC_2.32, GLIBC…...

FPGA状态机设计:流水灯实现、Modelsim仿真、HDLBits练习

一、状态机思想 1.概念 状态机&#xff08;Finite State Machine, FSM&#xff09;是计算机科学和工程领域中的一种抽象模型&#xff0c;用于描述系统在不同状态之间的转换逻辑。其核心思想是将复杂的行为拆解为有限的状态&#xff0c;并通过事件触发状态间的转移。 2.状态机…...

机试题——最少乘坐公交次数

题目描述 春节将近&#xff0c;小明想在节日期间逛一逛城里的 ( N ) 个著名景点。所有景点都能通过坐公交到达。需要设计一种公交路线方案&#xff0c;让小明能最快地逛完所有景点。 输入描述 第一行&#xff1a;一个整数 ( N )&#xff0c;表示景点数量&#xff0c;满足 ( …...

防孤岛保护装置在分布式光伏并网中的应用

什么是光伏的“孤岛效应” 孤岛islanding 包含负荷和电源的部分电网&#xff0c;从主网脱离后继续孤立运行的状态。孤岛可分为非计划性孤岛和计划性孤岛。 孤岛效应的危害 当电网侧停电检修&#xff0c;若并网光伏电站的逆变器仍在继续供电&#xff0c;维修人员不一定…...

记一次gitlab服务器负载过高问题处理

服务器上进程 /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru 进程服务器cpu占用过高应该怎么处理 tail -f /var/log/gitlab/gitlab-rails/production.log调整 Unicorn 配置&#xff1a;unicorn.rb 是 Unicorn 服务器的配…...

LiT and Lean: Distilling Listwise Rerankers intoEncoder-Decoder Models

文章&#xff1a;ECIR 2025会议 一、动机 背景&#xff1a;利用LLMs强大的能力&#xff0c;将一个查询&#xff08;query&#xff09;和一组候选段落作为输入&#xff0c;整体考虑这些段落的相关性&#xff0c;并对它们进行排序。 先前的研究基础上进行扩展 [14,15]&#xff0c…...

【项目日记】高并发服务器项目总结

生活总是让我们遍体鳞伤&#xff0c; 但到后来&#xff0c; 那些受伤的地方一定会变成我们最强壮的地方。 -- 《老人与海》-- 高并发服务器项目总结 模块关系图项目工具模块缓冲区模块通用类型模块套接字socket模块信道Channel模块多路转接Poller模块 Reactor模块时间轮Tim…...

P1332 血色先锋队(BFS)

题目背景 巫妖王的天灾军团终于卷土重来&#xff0c;血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团&#xff0c;以及一切沾有亡灵气息的生物。孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围&#xff0c;现在他们将主力只好聚集了起来&#xff0c;以抵…...

systemd 与 SysVinit

1. 什么是 systemd 和 SysVinit&#xff1f; systemd 和 SysVinit 都是 Linux 的初始化系统&#xff08;init system&#xff09;&#xff0c;用于管理系统启动、服务、进程和日志。 比较项SysVinitsystemd启动方式逐步启动&#xff08;串行&#xff09;并行启动&#xff08;…...

PythonWeb项目-Django+vue白酒数据推荐系统功能介绍

❥(^_-) 上千个精美定制模板,各类成品Java、Python、PHP、Android毕设项目,欢迎咨询。 ❥(^_-) 程序开发、技术解答、代码讲解、文档,💖文末获取源码+数据库+文档💖 💖软件下载 | 实战案例 💖文章底部二维码,可以联系获取软件下载链接,及项目演示视频。 本项目源…...

AWS Bedrock:开启企业级生成式AI的钥匙【深度解析】

引言&#xff1a;生成式AI的工业革命需要新基建 根据Gartner预测&#xff0c;到2026年超过80%的企业将在生产环境中部署生成式AI。而AWS Bedrock作为首个企业级生成式AI托管平台&#xff0c;正在重塑AI工业化落地的技术范式。本文将深入解构其技术架构与商业价值。 一、Bedroc…...

网络安全应急响应-文件痕迹排查

在Windows系统的网络安全应急响应中&#xff0c;文件痕迹排查是识别攻击行为的关键步骤。以下是针对敏感目录的详细排查指南及扩展建议&#xff1a; 1. 临时目录排查&#xff08;Temp/Tmp&#xff09; 路径示例&#xff1a; C:\Windows\TempC:\Users\<用户名>\AppData\L…...

【玩转全栈】—— Django 连接 vue3 保姆级教程,前后端分离式项目2025年4月最新!!!

本文基于之前的一个旅游网站&#xff0c;实现 Django 连接 vue3&#xff0c;使 vue3 能携带 CSRF Token 发送 axios 请求给后端&#xff0c;后端再响应数据给前端。想要源码直接滑倒底部。 目录 实现效果 解决跨域 获取 csrf-token 什么是 csrf-token &#xff1f; CSRF攻击的…...

网络安全·第一天·IP协议安全分析

本篇博客讲述的是网络安全中一些协议缺陷以及相应的理论知识&#xff0c;本博主尽可能讲明白其中的一些原理以及对应的防卫措施。 学习考研408的同学也能进来看看&#xff0c;或许对考研有些许帮助&#xff08;按照考研现在的趋势&#xff0c;年年都有新题目&#xff0c;本文当…...