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

0902,DEQUE,LIST,VECTOR

目录

01_vector.cc

02_vector.cc

作业

01STL包括哪些组件?各自具有哪些特点?

02 序列式容器包括哪些?他们之间有哪些异同?

03 下面程序有什么错误?

04 创建和初始化vector的方法,每种都给出一个实例?当然也可以把deque与list写出来

05 如果c1与c2是两个容器,下面的比较操作有什么限制?if(c1 < c2)

06 STL中的std::deque容器的实现原理?

07 评委打分的例子:要求:有五名选手ABCDE,10个评委打分,去掉最高分和最低分,求出每个选手的平均分。

08 编程题:从一个 vector 初始化一个 string。

09 题目:使用vector打印九九乘法表。

01_vector.cc

#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;template <class T>
class vec{
public:
private:typedef T* _iterator;
};
void test(){/*1*/vector<int> num0;/*2*/vector<int> num1(10,5);//count same valueint arr[10]={0,1,2,3,4,5,6,7,8,9};/*3*/vector<int> num2(arr,arr+10);//[0,10)/*4*///copy & move/*5*/vector<int> num3{4,5,6,3,2,7,3,9};//-----------------------------------//vector<int>::iterator it=num1.begin();//未初始化迭代器for(;it!=num1.end();++it){cout<<*it<<" ";}cout<<endl;//-----------------------------------//for(size_t idx;idx!=sizeof(arr)/sizeof(arr[0]);++idx){cout<<num1[idx]<<" ";}cout<<endl;//-----------------------------------//for(auto itt=num2.begin();itt!=num2.end();itt++){cout<<*itt<<" ";}cout<<endl;//-----------------------------------//for(auto &ele: num3){cout<<ele<<" ";}cout<<endl;
}int main(void)
{test();return 0;
}

02_vector.cc

#include <iostream>
#include <vector>
#include <deque>
#include <list>
using std::cout;
using std::endl;
using std::vector;
using std::list;
using std::deque;template <typename Container>
void display(const Container & con){for(auto &ele: con){cout<<ele<<" ";}cout<<endl;
}
void display_cap(const vector<int> & con){cout<<endl;display(con);cout<<"size::"<<con.size()<<endl;cout<<"capacity::"<<con.capacity()<<endl;
}//---------------------------------//
//vector  可变数组
template <class T>
class vec{
public:T* data(){return _M_start;}
private:T* _M_start;           //第一个元素T* _M_finish;          //最后一个元素的下一个位置T* _M_end_of_storage;  //最后一个空间的下一个位置
};
//---------------------------------//
//deque  逻辑连续 物理存储分散
//中控器数组 Map  -->  小片段(内部连续)
//迭代器不是一个普通类型的指针,是一个类,对指针的基本功能都做了重载
template <class T>
class _Tp{
private:_Tp* _M_cur;_Tp* _M_first;_Tp* _M_last;/* _Map_pointer _M_node;  //和中控器联系 */
};
template <class _Tp,class _Alloc>
class _deque_base{
};
//---------------------------------//void test(){vector<int> num3{4,5,6,7,8,9};display(num3);num3.push_back(333);display(num3);num3.pop_back();display(num3);//vector不支持头部插入和删除,一端开口//效率——整体前移/后移cout<<"<<<<<<<<<<<<<<<<vector first number addr"<<endl;&num3;//error  _M_tartcout<<&(*num3.begin())<<endl;cout<<&(num3[0])<<endl;int *pdata=num3.data();cout<<pdata<<endl;vector<int>::iterator v_it=num3.begin();v_it++;v_it+=2;cout<<"*v_it  "<<*v_it<<endl;num3.insert(v_it,11);//insert front ,return curdisplay_cap(num3);cout<<"*v_it  "<<*v_it<<endl;/* num3.insert(v_it,10,222);//迭代器失效 invalid pointer */v_it=num3.begin();num3.insert(v_it,10,222);//迭代器失效 invalid pointerdisplay_cap(num3);cout<<"*v_it  "<<*v_it<<endl;v_it=num3.begin();num3.insert(v_it,{666,777,888});display_cap(num3);cout<<"*v_it  "<<*v_it<<endl;v_it=num3.begin();num3.insert(v_it,num3.begin(),num3.end());display_cap(num3);cout<<"*v_it  "<<*v_it<<endl;//insert操作的时候,会导致底层发生扩容操作//迭代器还指向老的空间,老的空间已经回收了,所以//迭代器失效了//解决:每次都重新 置位 迭代器cout<<endl<<endl;//-----------------------------//list<int> num2{4,5,6,7,8,9};display(num2);num2.push_back(333);num2.push_front(44444);display(num2);num2.pop_back();num2.pop_front();display(num2);cout<<"<<<<<<<<<<<<<<<<<<list push anywhere"<<endl;list<int>::iterator l_it=num2.begin();l_it++;/* l_it+=2; */cout<<"*l_it  "<<*l_it<<endl;num2.insert(l_it,11);//insert front ,return curdisplay(num2);cout<<"*l_it  "<<*l_it<<endl;num2.insert(l_it,3,222);display(num2);cout<<"*l_it  "<<*l_it<<endl;num2.insert(l_it,{666,777,888});display(num2);cout<<"*l_it  "<<*l_it<<endl;num2.insert(l_it,num2.begin(),num2.end());display(num2);cout<<"*l_it  "<<*l_it<<endl;cout<<endl<<endl;//-----------------------------//deque<int> num1{0,1,2,3,4,5,6,7};display(num1);num1.push_back(333);num1.push_front(44444);display(num1);num1.pop_back();num1.pop_front();display(num1);cout<<"<<<<<<<<<<<<<<<<<<deque push anywhere"<<endl;deque<int>::iterator d_it=num1.begin();d_it++;d_it+=2;cout<<"*d_it  "<<*d_it<<endl;num1.insert(d_it,11);//insert前面一半,前移前面一半,后面一半后移display(num1);cout<<"*d_it  "<<*d_it<<endl;num1.insert(d_it,3,222);display(num1);cout<<"*d_it  "<<*d_it<<endl;num1.insert(d_it,{666,777,888});display(num1);cout<<"*d_it  "<<*d_it<<endl;num1.insert(d_it,num1.begin(),num1.end());display(num1);cout<<"*d_it  "<<*d_it<<endl;cout<<endl;}int main(void)
{test();return 0;
}

作业

01STL包括哪些组件?各自具有哪些特点?

01 容器(用来存放数据,也是数据结构
02 算法(用来实现容器的算法操作
03 迭代器(用来访问容器中的成员,是广义上的指针,也叫泛型指针
04 适配器(起到适配的作用
05 函数对象(仿函数:进行定制化操作
06 空间配置器(对空间的申请和释放进行管理

02 序列式容器包括哪些?他们之间有哪些异同?

01 vector 可变数组
02 deque 双向队列
03 list 双向链表
04 foward_list 单向链表
05 array 数组

内存上,array 和 vector是一片连续的空间,其余是逻辑上连续,物理存储时分散的

实现上,vector底层通过三个指针实现,分别指向第一个元素的位置,最后一个元素的下一个位置,最后一个空间的下一个位置;
deque的实现依靠  中控器数组Map+小片段实现的,片段内部是连续的,片段与片段之间是不连续的,当deque需要扩容时,直接对Map进行扩容,申请新的小片段(小片段成员包括四个指针,分别指向第一个元素,最后一个元素,当前元素,一个指针用于和Map进行联系)
list 链表喵

使用上,deque,vector支持随机访问,list不支持

03 下面程序有什么错误?

list<int> lst; 
list<int>::iterator iter1 = lst.begin(), iter2 = lst.end(); 
while(iter1 < iter2)
{    //....
}

list的迭代器不能进行<比较,要用迭代器特有的!=

04 创建和初始化vector的方法,每种都给出一个实例?当然也可以把deque与list写出来

01 创建空容器
02 count个value
03 迭代器
04 {}
05 拷贝构造和移动构造

#include <iostream>
#include <vector>
#include <deque>
#include <list>
using std::cout;
using std::endl;
using std::vector;
using std::list;
using std::deque;template <class T>
void print( T & con){for(auto & ele: con){cout<<ele<<" ";}cout<<endl;
}void test(){/*1*/vector<int> num0;/*2*/vector<int> num1(10,5);//count same valueint arr[10]={0,1,2,3,4,5,6,7,8,9};/*3*/vector<int> num2(arr,arr+10);//[0,10)/*4*/vector<int> num4(num1);/*4*/vector<int> num5(vector<int>{1,2,3});/*5*/vector<int> num3{4,5,6,3,2,7,3,9};print(num0);print(num1);print(num2);print(num3);print(num4);print(num5);cout<<endl;
}
void test1(){/*1*/deque<int> num0;/*2*/deque<int> num1(10,5);//count same value/*3*/deque<int> num2(num1.begin(),num1.end());//[0,10)/*4*/deque<int> num4(num1);/*4*/deque<int> num5(deque<int>{1,2,3});/*5*/deque<int> num3{4,5,6,3,2,7,3,9};print(num0);print(num1);print(num2);print(num3);print(num4);print(num5);cout<<endl;
}
void test2(){/*1*/list<int> num0;/*2*/list<int> num1(10,5);//count same value/*3*/list<int> num2(num1.begin(),num1.end());//[0,10)/*4*/list<int> num4(num1);/*4*/list<int> num5(list<int>{1,2,3});/*5*/list<int> num3{4,5,6,3,2,7,3,9};print(num0);print(num1);print(num2);print(num3);print(num4);print(num5);cout<<endl;
}
int main(void)
{test();test1();test2();return 0;
}

05 如果c1与c2是两个容器,下面的比较操作有什么限制?if(c1 < c2)

01,是相同的容器类型
02,容器的元素类型支持比较操作
03,容器内部元素的顺序性比较(deque,vector支持,list不支持,只能使用!=)
04,容器支持随机访问元素

06 STL中的std::deque容器的实现原理?

deque的实现依靠  中控器数组Map+小片段实现的,片段内部是连续的,片段与片段之间是不连续的,当deque需要扩容时,直接对Map进行扩容,申请新的小片段(小片段成员包括四个指针,分别指向第一个元素,最后一个元素,当前元素,一个指针用于和Map进行联系)

07 评委打分的例子:要求:有五名选手ABCDE,10个评委打分,去掉最高分和最低分,求出每个选手的平均分。

思路: 

1.创建Person类,定义name,score成员属性;创建五名选手存放到vector容器中;

2.遍历vector容器,首先10个评委的打分存放到deque容器中,sort算法对分数排序,去掉最高最低分;

3.deque容器遍历,进行剩余分数的累加,求平均;

4.输出每个选手的姓名,成绩

提示:还是容器vector与deque的基本使用

//嘻嘻,每一个初始化都会worning#include <iostream>
#include <vector>
#include <deque>
#include <string.h>
#include <random>
using std::cout;
using std::endl;
using std::vector;
using std::deque;
using std::ostream;#define  PER_NUM 5
#define  SCO_NUM 10class Person{
public:
//const char* 坏,终于知道为什么worning了Person(char* name,int sc):_name(new char[strlen(name)+1]()),_score(sc){strcpy(_name,name);}Person(const Person & p):_name(new char[strlen(p._name)+1]()),_score(p._score){strcpy(_name,p._name);}//vector初始化使用拷贝构造~Person(){if(_name){delete []  _name;_name=nullptr;}}Person & operator=(const Person & p){if(this!=&p){delete [] _name;_name=new char[strlen(p._name)+1]();strcpy(_name,p._name);_score=p._score;}return *this;}void p_sc(int sc){_score=sc;}friend ostream & operator<<(ostream & os,const Person & p);
private:char* _name;int _score;
};
ostream & operator<<(ostream & os,const Person & p){os<<p._name<<"--"<<p._score<<"  ";return os;
}//-------------------------//
void test(){Person p1("xixi",0);Person p2("jiajia",0);Person p3("kewu",0);Person p4("dada",0);Person p5("shazi",0);vector<Person> people{p1,p2,p3,p4,p5};std::random_device rd;//获取随机数种子std::mt19937 gen(rd());//生成随机数引擎std::uniform_int_distribution<> dis(60,100);//范围for(int i=0;i<PER_NUM;i++){deque<int> sc;for(int j=0;j<SCO_NUM;j++){sc.push_back(dis(gen));/* cout<<sc[j]<<" "; */}/* cout<<endl; */int max=0,min=0,rel=0;for(auto & ele:sc){if(ele>max){max=ele;}if(ele<min){min=ele;}rel+=ele;}rel=(rel-max-min)/(SCO_NUM-2);people[i].p_sc(rel); cout<<people[i]<<endl;}cout<<endl;
}
int main(void)
{test();return 0;
}
#include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <algorithm>using namespace std;class Person 
{
public:Person(const string &name,int score) : _name(name), _score(score){}string _name;int _score;
};void creatPerson(vector<Person>& vec) 
{string nameSeed = "ABCDE";for (int idx = 0; idx < 5; ++idx){string name = "选手";name += nameSeed[idx];int score = 0;Person p(name, score);vec.push_back(p);}
}void setScore(vector<Person>& vec)
{for (vector<Person>::iterator it = vec.begin(); it != vec.end(); ++it){deque<int> dq;for (int idx = 0; idx < 10; ++idx) {//将分数设定在[60, 100]范围中int score = ::rand() % 41 + 60;//产生随机的分数dq.push_back(score);}//对分数进行排序sort(dq.begin(), dq.end());dq.pop_front();//去掉最低分dq.pop_back();//去掉最高分int sum = 0;for (deque<int>::iterator dit = dq.begin(); dit != dq.end(); ++dit){sum += *dit;}//求10个评委的平均分int avg = sum/dq.size();//然后将10个评委的平均分赋值给每个选手it->_score = avg;	}
}void showScore(vector<Person>& vec) 
{for (vector<Person>::iterator it = vec.begin(); it != vec.end(); ++it) {cout << "姓名:" << it->_name << "  平均分数:" << it->_score << endl;}
}int main() 
{//种随机种子::srand(::clock());//定义Person类型的容器vector<Person> vec;//创建五名选手,创建容器类里面的成员及其属性creatPerson(vec);//给每个选手设定分数(让10个评委打分)setScore(vec);//显示每个选手的分数showScore(vec);	return 0;
}

 不想看,虽然我的初始化一直woring
//Person(const char* name,int score)坏,终于知道为什么worning了

08 编程题:从一个 vector<char> 初始化一个 string

提示:可以定义vector如下:vector<char> vc = { 'H', 'E', 'L', 'L', 'O' };然后查看如何给string进行初始化或者赋值,考查对vector与string的基本使用

#include <iostream>
#include <vector>
#include <deque>
#include <list>
#include <string>
using std::cout;
using std::endl;
using std::vector;
using std::list;
using std::deque;
using std::string;//---------------------------------//void test(){vector<char>vc={'h','e','l','l','o'};string s1{'\0'};cout<<s1<<endl;for(auto & ele:vc){s1+=ele;}s1+='\0';cout<<s1<<endl;
}int main(void)
{test();return 0;
}
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{vector<char> vc = { 'H', 'E', 'L', 'L', 'O' };string s(vc.data(), vc.size());cout << s << endl;return 0;
}

 我好蠢嘻嘻

09 题目:使用vector打印九九乘法表。

提示:可以使用vector嵌套vector的使用方式。例如:vector<vector<int>>,然后就是veector的基本操作。

#include <iostream>
#include <vector>
#include <deque>
#include <list>
#include <string>
using std::cout;
using std::endl;
using std::vector;
using std::list;
using std::deque;
using std::string;//---------------------------------//void print(vector<vector<int>>  & con){for(int i=0;i<9;i++){for(auto & ell : con[i]){cout<<(i+1)<<"×"<<ell<<"="<<(i+1)*(ell)<<"  ";}cout<<endl;}   
}//---------------------------------//
void test(){vector<vector<int>> v1(9);for(int i=0;i<9;i++){vector<int> tempv;for(int j=0;j<=i;j++){tempv.push_back(j+1);}v1[i]=tempv;}print(v1);
}int main(void)
{test();return 0;
}
#include<iostream>
#include<vector>using namespace std;int main()
{vector<vector<int> >v2d;for (int i = 0; i < 9; i++){v2d.push_back(vector<int>());}for (int i = 0; i < v2d.size(); i++){for (int j = 0; j <= i; j++){v2d[i].push_back((i + 1) * (j + 1));}}for (int i = 0; i < v2d.size(); i++){for (int j = 0; j < v2d[i].size(); j++){cout << i + 1 << "*" << j + 1 << "=" << v2d[i][j] << "\t";}cout << endl;}return 0;
}

01,初始化9个空 vector<int>-->vector<vector<int>>

02,vector<int>存乘积

03,打印

相关文章:

0902,DEQUE,LIST,VECTOR

目录 01_vector.cc 02_vector.cc 作业 01STL包括哪些组件&#xff1f;各自具有哪些特点&#xff1f; 02 序列式容器包括哪些&#xff1f;他们之间有哪些异同&#xff1f; 03 下面程序有什么错误&#xff1f; 04 创建和初始化vector的方法&#xff0c;每种都给出一个实例…...

LeetCode 每日一题 2024/9/2-2024/9/8

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/2 3153. 所有数对中数位不同之和9/3 2708. 一个小组的最大实力值9/4 2860. 让所有学生保持开心的分组方法数9/5 3174. 清除数字9/6 3176. 求出最长好子序列 I9/7 3177. 求…...

Linux中的Vim文本编辑器

Linux中的Vim是一个非常强大的文本编辑器&#xff0c;它提供了丰富的命令来支持各种文本编辑操作。以下是一个Vim常用命令的详细总结&#xff0c;涵盖了基本操作、编辑命令、移动光标、查找替换、保存退出等多个方面。 一、基本操作 启动Vim vim&#xff1a;直接启动Vim编辑器…...

rancher搭建k8s及jenkins自动化部署

1、准备环境 角色IP用途k8s-rancher-master192.168.3.63master节点k8s-rancher-node01192.168.3.64node节点k8s-rancher-node02192.168.3.66node节点k8s-rancher-server192.168.2.33rancher-server节点注: 服务器名需要配置不同,相同服务器名不能加入node节点 在所有节点进行…...

vue el-dialog嵌套解决无法点击问题

产生原因: 当你在 el-dialog 上嵌套另一个 el-dialog 窗口时&#xff0c;可能会遇到内部对话框无法点击的问题。这通常是由于嵌套对话框的遮罩层&#xff08;overlay&#xff09;或其他样式问题造成的。 解决方案: 如果你的 el-dialog 组件支持 append-to-body 属性&#xff…...

c# c++程序 交互

目录 一、两种不同程序写的进程交互 1、定义交互消息 2、定义C进程发来的消息ID 3、定义C进程交互的句柄 及给C进程发送的消息ID 4、定义交互消息所需的数据类型 5、引入所需的系统函数 6、给主进程发消息 7、写入本进程主窗口句柄 8、处理发来的交互消息 一、两种不…...

解决ruoyi框架中使用pagehelper插件分页查询后对数据进行对象转换后失效问题

一、场景重现 使用rouyi框架时&#xff0c;可以看到很多分页查询&#xff0c;如&#xff1a; //-----------SysConfigController------------- GetMapping("/list") public TableDataInfo list(SysConfig config) {startPage();List<SysConfig> list config…...

RabbitMQ 应用

文章目录 前言1. Simple 简单模式2. Work Queue 工作队列模式3. Pubulish/Subscribe 发布/订阅模式Exchange 的类型 4. Routing 路由模式5. Topics 通配符模式6. RPC RPC通信7. Publisher Confirms 发布确认1. 单独确认2. 批量确认3. 异步确认 前言 前面我们学习了 RabbitMQ 的…...

使用Python读取Excel数据的详细指南

在数据分析中&#xff0c;Excel文件是一种常见的数据存储格式。使用Python读取Excel数据可以帮助我们更方便地进行数据处理和分析。本文将介绍如何在Python 2和Python 3中读取Excel数据&#xff0c;具体步骤和代码示例详细说明。 准备工作 在开始之前&#xff0c;请确保你已经…...

VitePress 动态路由与路径加载器详解

在使用 VitePress 构建静态网站时&#xff0c;动态路由功能允许我们通过单个 Markdown 文件和动态数据生成多个页面。本文将详细介绍如何使用动态路由以及路径加载器文件来生成这些页面&#xff0c;并提供实例代码和解释说明。 动态路由基础 动态路由的核心在于使用带有参数的…...

C#编程语言及.NET 平台快速入门指南

Office Word 不显示 Citavi 插件&#xff0c;如何修复&#xff1f;_citavi安装后word无加载项-CSDN博客 https://blog.csdn.net/Viviane_2022/article/details/128946061?spm1001.2100.3001.7377&utm_mediumdistribute.pc_feed_blog_category.none-task-blog-classify_ta…...

高等代数精解【9】

文章目录 向量空间与矩阵矩阵的行列式矩阵A的秩保持不变方阵的行列式线性无关的条件1. 线性组合为零向量的唯一性2. 矩阵的秩3. 几何解释&#xff08;对于二维和三维空间&#xff09;4. 行列式&#xff08;对于方阵&#xff09;总结 矩阵的非零子式基础重要性例子注意事项 非奇…...

谷粒商城の缓存篇

文章目录 前言一、本地缓存和分布式缓存1.本地缓存2.分布式缓存 二、项目实战1.配置Redis2.整合业务代码2.1 缓存击穿2.2 缓存雪崩2.3 缓存穿透2.4 业务代码1.0版2.5 分布式锁1.0版2.6 分布式锁2.0版2.7 Spring Cache及缓存一致性问题2.7.1 Spring Cache2.7.2 缓存一致性问题2.…...

永远学习:为什么人工智能难以适应新挑战

理解深度学习的局限性并追求真正的持续适应 欢迎来到雲闪世界。 “智者适应环境&#xff0c;正如水适应水瓶。”——中国谚语 “适应或灭亡&#xff0c;现在和以往一样&#xff0c;是大自然的必然法则。”——赫伯特乔治威尔斯 近年来&#xff0c;人工智能取得了长足的进步。所…...

【spring】 Jackson :@JsonIgnore 注解

@JsonIgnore 是 Jackson 库中的一个注解,用于在序列化和反序列化过程中忽略某个字段。也就是说,当对象被转换为 JSON 或从 JSON 转换为对象时,带有 @JsonIgnore 注解的字段将不会被包含在内在这个示例中,ignoredField 字段将不会出现在生成的 JSON 字符串中。 import com.…...

Dependencies与DependencyManagement的区别

现在Maven项目管理&#xff0c;在开发中时比较常用的&#xff0c;在一些项目汇总遇到依赖冲突的问题之后&#xff0c;还是没有能有一个很好的解决办法&#xff0c;这次就来看看在使用Maven管理依赖的过程中dependencies与dependencyManagement的区别。 DepencyManagement应用场…...

git svn 日记

1. git log -p -1 --name-only 该命令用于查看最新的一次提交记录的详细信息&#xff0c;包括文件更改情况。 git log&#xff1a;显示 Git 仓库的提交历史。-p&#xff1a;显示每次提交的差异 (diff)&#xff0c;也就是文件内容的修改部分。-1&#xff1a;表示只显示最近的一…...

FSMC

RAM ROM RAM和ROM相比&#xff0c;两者的最大区别是RAM在断电以后保存在上面的数据会自动消失&#xff0c;而ROM不会自动消失&#xff0c;可以长时间断电保存。 并且RAM的速度要远远高于ROM的速度。 SRAM SRAM 的存储单元以锁存器来存储数据&#xff0c;种电路结构不需要定时…...

NAT技术+代理服务器+内网穿透

NAT技术 IPv4协议中&#xff0c;会存在IP地址数量不充足的问题&#xff0c;所以不同的子网中会存在相同IP地址的主机。那么就可以理解为私有网络的IP地址并不是唯一对应的&#xff0c;而公网中的IP地址都是唯一的&#xff0c;所以NAT&#xff08;Network Address Translation&…...

【ABAP】ole2 excel多sheet导入导出

原理就不分享了 原来是用了动态表格&#xff0c;但是要导出不方便&#xff0c;所以就写死了&#xff0c;excel多sheet导入的类放在另一篇文章里 REPORT zcdemo17. INCLUDE ole2incl.DATA: excel TYPE ole2_object,workbooks TYPE ole2_object,workbook TYPE ole2_object…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

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

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

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...