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

蓝桥杯备考day2

1.1 map及其函数

  • map 提供一对一的数据处理能力,由于这个特性,它完成有可 能在我们处理一对一数据的时候,在编程上提供快速通道。map 中的第一 个值称为关键字(key),每个关键字只能在 map 中出现一次,第二个称为该 关键字的值(value),可以重复。
// 定义,以 string, int 对为例
#include <map>
map<string, int> mp; // 底层是红黑树,元素可比较大小,key 的结构体要重载 < 运算// 1- 插入
mp.insert(make_pair("zhs", 18)); // 插入一个键值对,若原先存在该 key,则无法插入和覆盖
mp.insert(pair<string,int>("zhs", 18)); // 插入一个键值对,若原先存在该 key,则无法插入和覆盖
mp["zhs"] = 18; // 甚至可以类似数组下标去访问 key 对应的 value,若原先不存在该 key,则创建,若原先存在,则覆盖以前该关键字对应的值
mp.emplace("zhs", 18); // 插入效果跟 insert 效果完全一样// 2- 删除mp.erase(key); // 删除值为 key 的元素
mp.erase(iter); // 删除迭代器 iter 指向的元素,例如mp.erase(mp.begin());
mp.erase(iter1, iter2); // 删除区间 [iter1, iter2) 的所有元素,例如 mp.erase(mp.begin(), mp.end());
mp.clear(); // 清空集合// 3- 求大小
int siz = mp.size(); // 求集合大小
bool flag = mp.empty(); // 集合判空// 4-查询
if(mp.find(key) != mp.end()) // find 函数返回一个指向被查找到元素的迭代器cout << mp[key] << endl;
if(mp.count(key)) // count 返回某个值元素的个数cout << mp[key] << endl;
auto iter = mp.lower_bound(key); // 求 key 的下界,返回指向大于等于某值的第一个元素的迭代器
auto iter = mp.upper_bound(key); // 求 key 的上界,返回大于某个值元素的迭代器// 5-遍历
map<string, int>::iterator iter; // 正向遍历for(iter=mp.begin(); iter!=mp.end(); iter++)
{cout << iter->first << " " << iter->second << endl;// 或者cout << (*iter).first << " " << (*iter).second << endl;
}map<int>::reverse_iterator riter; // 反向遍历
for(riter=mp.rbegin(); riter!=mp.rend(); riter++)
{// 遍历的同时修改iter->second += 10;cout << iter->first << " " << iter->second << endl;
}
for (auto x : mp){ // C++ 11 auto 遍历cout << x.first << " " << x.second << endl;
}
for (auto& x : mp){ // C++ 11 auto 遍历x.second += 10; // 遍历并修改cout << x.first << " " << x.second << endl;
}// 6- 求最值
map<string, int>::iterator it = mp.begin(); // 最小值
cout << *it << endl;
map<string, int>::iterator it = mp.end(); // 最大值
cout << *(--it) << endl;
/*
1. map 和 set 一样,其中的元素必须支持 < 运算符
2. 在插入时,使用 insert 和 用数组方式去插入,在原先存在要插入的键值
时是有区别的,insert不会插入,用数组方式插入则会直接覆盖原先数据
3. map 的迭代器支持 ++、--、==、!=、(*iter).first、
(*iter).second、iter->first、 iter->second 等操作
4. map 的迭代器不支持 +、-、 +=、-= 等算术操作符,也不支持 >、<、
>=、<= 等比较操作符
*/

1.2 map的插入和遍历

//map的插入和遍历
#include<bits/stdc++.h>
using namespace std;
map<string,int> mp;
int main(){int n,age;string s;cin>>n;for(int i=0;i<n;i++){cin>>s>>age;mp[s]=age;}map<string,int>::iterator it;//遍历mapfor(it=mp.begin();it!=mp.end();it++){cout<<it->first<<" "<<it->second<<endl;}return 0;
}

1.3 set及其函数

  • set 的含义是集合,它是一个 有序的容器,里面的元素都是排序好的,支持插入、删除、查找等操作,就像一个集合。所有的操作的都是严格在O(logn)时间之内完成,效率非常高。 set 和 multiset 的区别是:set插入的 元素不能相同,但是multiset 可以相同。
// 1- 定义
#include <set>
set<int> s; // 元素必须可比较大小,元素类型必须要支持 < 运算,结构体需要重载 <// 2- 插入
s.insert(key); // 插入// 3- 删除
s.erase(key); // 删除值为 key 的元素
s.erase(iter); // 删除迭代器 iter 指向的元素,例如
s.erase(s.begin());
s.erase(iter1, iter2); // 删除区间 [iter1, iter2) 的所有元素,例如 s.erase(s.begin(), s.end());
s.clear(); // 清空集合// 4- 求大小
int siz = s.size(); // 求集合大小
bool flag = s.empty(); // 集合判空// 5-查询
if(s.find(key) != s.end()) // find 函数返回一个指向被查找到元素的迭代器cout << "exist" << endl;
if(s.count(key) == 1) // count 返回某个值元素的个数cout << "exist" << endl;
set<int>::iterator iter = s.lower_bound(key); // 求 key 的下界,返回指向大于等于某值的第一个元素的迭代器
set<int>::iterator iter = s.upper_bound(key); // 求 key 的上界,返回大于某个值元素的迭代器
// auto 类型推断关键字 在NOI 系列比赛中也可以使用了
auto iter = s.lower_bound(key); // 求 key 的下界,返回指向大于等于某值的第一个元素的迭代器
auto iter = s.upper_bound(key); // 求 key 的上界,返回大于某个值元素的迭代器// 6-遍历
set<int>::iterator iter; // 正向遍历
for(iter=s.begin(); iter!=s.end(); iter++)
{cout<<*iter<<endl;
}
set<int>::reverse_iterator riter; // 反向遍历,不重要
for(riter=s.rbegin(); riter!=s.rend(); riter++)
{cout<<*riter<<endl;
}// 7- 求最值
set<int>::iterator it = s.begin(); // 最小值
cout << *it << endl;
set<int>::iterator it = s.end(); // 最大值
cout << *(--it) << endl;
/*
注意:
1. set 和优先队列一样,其中的元素必须支持 < 运算符
2. set 的迭代器支持 ++、--、==、!=、*iter 等操作
3. set 的迭代器不支持 +、-、 +=、-= 等算术操作符,也不支持 >、<、
>=、<= 等比较操作符
*/

1.4 set的插入和遍历

#include<bits/stdc++.h>
using namespace std;
int main(){set<int> s;//set可以自动去重和排序,默认升序int n,t;cin >> n;for(int i=1;i<=n;i++){cin >> t;s.insert(t);//set没有push_back操作}set<int>::iterator it;//set需要使用迭代器遍历数据for(it=s.begin();it!=s.end();it++){//set支持双向迭代器cout << *it << " ";}
}

1.5 ASCII码值、字母大小写转换、’0‘~’9‘

// 数字转字符: 'A'(65) 'a'(97) '0'(48)
char A = char(65);
char a = char(97);
char c = 'a' + 2; // 'c' = 'a' + 2
char seven = '0' + 7; // '7' = '0' + 7
// 字符转数字
int a = 'a'; // a: 97
int A = 'A'; // A:65
int t = 't' - 'a'; // 计算字母间差值
int seven = '7' - '0';

1.6 常见字符串函数与reverse

// 最常用的操作
str.size();//返回字符串长度
str.length();//返回字符串长度
str.empty();//检查 str 是否为空,为空返回 1,否则返回 0
str[n];//存取 str 第 n + 1 个字符
str.at(n);//存取 str 第 n + 1 个字符(如果溢出会抛出异常)// 反转
reverse(str.begin(), str.end());// 查找
str.find("ab");//返回字符串 ab 在 str 的位置
str.find("ab", 2);//在 str[2]~str[n-1] 范围内查找并返回字符串 ab在 str 的位置
str.rfind("ab", 2);//在 str[0]~str[2] 范围内查找并返回字符串 ab在 str 的位置
if(str.find("ab")!=string::npos)
{ cout << "下标为:" << str.find("ab"); 
}// 子串
str.substr(3); // 返回 [3] 及以后的子串
str.substr(2, 4); // 返回 str[2]~str[2+(4-1)] 子串(即从[2]开始4个字符组成的字符串)
str.substring(5, 10); // 返回 str[5]~str[9] 子串(不包含结尾)// 插入
str.insert(2, "sz");//从 [2] 位置开始添加字符串 "sz",并返回形成的新字符串
str.insert(2, "abcd", 3);//从 [2] 位置开始添加字符串 "abcd" 的前3 个字符,并返回形成的新字符串
str.insert(2, "abcd", 1, 3);//从 [2] 位置开始添加字符串 "abcd" 的前 [2]~[2+(3-1)] 个字符,并返回形成的新字符串// 删除
str.erase(3);//删除 [3] 及以后的字符,并返回新字符串
str.erase(3, 5);//删除从 [3] 开始的 5 个字符,并返回新字符串// 替换
str.replace(2, 4, "sz");//返回把 [2]~[2+(4-1)] 的内容替换为 "sz"后的新字符串
str.replace(2, 4, "abcd", 3);//返回把 [2]~[2+(4-1)] 的内容替换为"abcd" 的前3个字符后的新字符串// 追加
str = str + "abc";
str.push_back('a');//在 str 末尾添加字符'a'
str.append("abc");//在 str 末尾添加字符串"abc"

1.7 stringstream

  • stringstream 主要是用在字串分割,可以先用 clear() 以及 str() 将字 符串读入并进行分割,再用 >> 把内容输出,例如:
string s;
stringstream ss;
int a, b, c;
getline(cin, s);
ss.clear();
ss.str(s);
ss >> a >> b >> c;

1.8 字典序

  • 什么是字典序:所谓字典序就是以ASCII码排序。
  • 比如两个字符串 abcd 和 abdd 比较大小。 从第一个字符开始逐位比 较,第一个字符不相等,谁的ASCII码值小谁的字典序就小。若第一个相 等,继续逐位比较后续字符。比较到字母c < 字母d,所以第一个字符串 abcd 字典序较小。
  • 再比如 hist 和 history 比较大小。若逐位比较都相等,但其中一 个没有后续的字符了,则较短的串 hist 字典序较小。
  • 使用 sort() 可以对字符串进行字典序排序,字符按ASCII码值由小 到大排列
string str = "agfdvdsgds";
sort(str.begin(),str.end());

1.9 结构体排序

  • 结构体是 自定义类型 ,它就像一个 能装不同数据类型 的“包裹”。当你声明 一个结构体后,需要赋予这个结构体一个名字(即 结构体名 )。而 定义具 体变量时,也可以定义结构体数组 。这相当于告诉计算机,你一口气定义 了许多“包裹”,每一个“包裹”里面都可以装入许多不同或相同数据类型的变 量。
  1. **结构体的声明:**使用结构体前,需要先声明一个结构体类型,再进行定义和使用。结构体 类型的声明格式为:

    struct 结构体类型名{ //其中,sruct是关键字,在c++中表示结构体数据类型 成员变量1; //多个成员变量可以具有不同的数据类型数据类型 成员变量2;......
    };
    

    声明之后,就可以定义结构体变量了,格式如下:

    结构体类型名 变量名;(struct 可省略)
    

    例如 我们需要表示一个学生的信息,首先我们声明学生的结构体:

    struct student{ //student表示结构体的类型名string name;char sex;int age;float height,score;
    };

    然后定义一个具体的学生:

    student zhangsan;//声明一个student的结构体变量叫zhangsan
    

    当然我们如果需要很多学生,可以声明为结构体数组:

    student a[1001];//创建结构体数组a
    //a数组中的每一个元素都是一个结构体类型student的变量
    

    另外 为方便起见,我们一般直接在声明结构体的同时定义变量,格式如下:

    struct 结构体类型名{ //其中,sruct是关键字,在c++中表示结构体数据类型成员变量1; //多个成员变量可以具有不同的数据类型数据类型成员变量2;......
    }结构体变量表;
    

    比如:

    struct student{string name;char sex;int age;float height,score;
    }a[1001];
    
  2. .结构体的使用

  • 将结构体变量视为一个整体进行操作,例如:

    swap(a[1], a[2]);
    
  • 使用符号“.”对结构体变量的成员进行操作,“.”的含义可以理解为中文 的“的”,格式为:

    结构体名.成员变量名
    

    比如:

    student a;//李四
    cin >> a.name;//输入赋值李四的名字
    a.age = 23;//直接赋值给李四的年龄为23
    
  1. 结构体的初始化
  • 集合形式,比如:

    student a = {"tuotuo",'F',12,168,100};
    
  • 逐一赋值,比如:

    student a;
    cin >> a.name >> a.sex;
    a.age = 12;
    
  1. 结构体中的sort()函数
  • 现在给你一个结构体,现在有这样一个要求:按照年龄从小到大输出。 那我们就照结构体中成员变量age(也就是年龄)进行从小到大的排序,代 码如下:
      #include<bits/stdc++.h>using namespace std;struct student {  string name;  int age;  float height;  };  bool cmp(const student& a, const student& b) {  return a.age < b.age;  }  int main() {  student a[10] = {  {"Alice", 20, 165.5},  {"Bob", 22, 180.0},  {"Charlie", 19, 170.2},  {"David", 21, 175.0},  {"Eve", 20, 160.0},  {"Frank", 23, 185.0},  {"Grace", 18, 155.0},  {"Henry", 22, 182.0},  {"Isabella", 21, 168.0},  {"Jack", 19, 172.0}  };  // 打印排序前的学生信息  for (int i = 0; i < 10; i++) {  cout << "Name: " << a[i].name << ", Age: " << a[i].age << ", Height: " << a[i].height << endl;  }  // 使用 sort 函数对数组进行排序  sort(a, a + 10, cmp);  // 打印排序后的学生信息  cout << "Sorted by age:" << endl;  for (int i = 0; i < 10; i++) {  cout << "Name: " << a[i].name << ", Age: " << a[i].age << ", Height: " << a[i].height << endl;  }  return 0;  }

1.10 浮点数比较

  • 因为C/C++内置的double类型也是由相应的二进制存储的,所以double在 计算的时候是会可能丢失精度的,最后进行浮点数比较的时候要注意做一 个 fabs

    //比较两个浮点数是否相等
    bool compareDouble(double a,double b)
    {
    double eps = 1e-6 //注意精度,默认是1e-6,有时候精度要求不高可
    以降低精度要求
    if(fabs(a-b)<eps) return true;
    return false;
    }
    

1.11 调试中常见错误

  1. 注意 数据范围!!!定义单个变量能用 long long 就不要用 int ,能定义为 double 就不要用 float 。
  2. maxn 、 minn (最大值、最小值)或者 cnt (计数器)忘记 赋初始值。
  3. 忘记删除用来检查代码的语句,比如添加了多余的打印操作。
  4. 没理解题目的意思,就开始做题。要结合样例去理解题目。
  5. 注意题目数据范围很大的时候, 考虑优化。
  6. 数组开太大。比如: int arr[10000][10000] ,则 arr 的空间大小约为 400M,远超题目的空间限制。
  7. 边界条件考虑不充分。
  8. 变量命名与c++自带的名称冲突(因此,慎用万能头文件)。如:int time; int max; int min等等。
  9. 写了初始化函数 ,没有调用。
  10. 使用函数时, 参数传错。
  11. 用了一个新的知识点,但自己不太清楚,就用了。要注意,写的代码最好是你完全能明白的。
  12. if里面的判断条件没想清楚,还继续往下写。
  13. 循环里面条件写反,比如: for(int i = n;i > 0;i+ +)
  14. 双重循环里面 i 和 j写反,或者两个循环变量都写成 i。
  15. 字符串 string 中,遍历 string 的操作最好用 for(int i = 0;i < s.size(); i++) ,不要用小于等于 i<= s.size() - 1

相关文章:

蓝桥杯备考day2

1.1 map及其函数 map 提供一对一的数据处理能力&#xff0c;由于这个特性&#xff0c;它完成有可 能在我们处理一对一数据的时候&#xff0c;在编程上提供快速通道。map 中的第一 个值称为关键字(key)&#xff0c;每个关键字只能在 map 中出现一次&#xff0c;第二个称为该 关…...

Mac电脑安装蚁剑

1&#xff1a; github 下载源码和加载器&#xff1a;https://github.com/AntSwordProjectAntSwordProject GitHubAntSwordProject has 12 repositories available. Follow their code on GitHub.https://github.com/AntSwordProject 以该图为主页面&#xff1a;antSword为源码…...

品牌百度百科词条创建多少钱?

百度百科作为国内最具权威和影响力的知识型平台&#xff0c;吸引了无数品牌和企业争相入驻。一个品牌的百度百科词条&#xff0c;不仅是对品牌形象的一种提升&#xff0c;更是增加品牌曝光度、提高品牌知名度的重要途径。品牌百度百科词条创建多少钱&#xff0c;这成为了许多企…...

Linux安装及管理程序

目录 一.Linux应用程序基础 1.应用程序与系统命令的关系 2.典型应用程序的目录结构 3.常见的Linux软件包封装类型 二.RPM 软件包管理工具 1.RPM 软件包管理器 Red-Hat Package Manger 2.RPM软件包 3.RPM命令 三.源代码编译安装 1. yum 软件包管理器&#xff1a; 配…...

Mybatis generate xml 没有被覆盖

添加插件即可 <plugin type"org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>...

MercadoLibre(美客多)入仓预约系统操作流程-自动化约号(开篇)

目录 一、添加货件信息 二、输入货件信息 三、选择发货 四、填写交货日期 五、注意事项 MercadoLibre&#xff08;美客多&#xff09;于2021年10月18号上线了新预约入仓系统&#xff0c;在MercadoLibre美客多平台上&#xff0c;新入仓预约系统是一项非常重要的功能&#x…...

Unity TextMeshProUGUI 获取文本尺寸·大小

一般使用ContentSizeFitter组件自动变更大小 API 渲染前 Vector2 GetPreferredValues(string text)Vector2 GetPreferredValues(string text, float width, float height)Vector2 GetPreferredValues(float width, float height) 渲染后 Vector2 GetRenderedValues()Vector…...

Sonar下启动发生错误,elasticsearch启动错误

Download | SonarQube | Sonar (sonarsource.com) 1.首先我的sonar版本为 10.4.1 &#xff0c;java版本为17 2.sonar启动需要数据库,我先安装了mysql, 但是目前sonar从7.9开始不支持mysql&#xff0c;且java版本要最少11,推荐使用java17 3.安装postsql,创建sonar数据库 4.启…...

Git常用命令以及异常信息汇总

常用命令&#xff1a; 查看本地分支&#xff1a; git branch 创建一个新仓库 git clone 仓库地址xxxxx cd 目标目录 git switch -c main touch README.md git add README.md git commit -m "add README" git push -u origin main 推送现有文件夹 cd 目标目录 git in…...

解释Python中的RESTful API设计和实现

解释Python中的RESTful API设计和实现 RESTful API&#xff0c;即符合REST&#xff08;Representational State Transfer&#xff0c;表述性状态转移&#xff09;架构风格的Web服务接口&#xff0c;已成为现代Web应用程序通信的标准。Python作为一种灵活且强大的编程语言&…...

一、Nginx部署

Nginx部署 一、Docker部署1.复制Nginx配置文件2.启动Nginx容器 一、Docker部署 1.复制Nginx配置文件 # 1.拉取镜像 docker pull nginx # 2.启动nginx容器 docker run --restartalways --namenginx -p 80:80 -d nginx # 3.宿主机创建挂载目录 mkdir /root/docker/nginx -p # 4…...

C语言基础---指针的基本语法

概述 内存地址 在计算机内存中&#xff0c;每个存储单元都有一个唯一的地址(内存编号)。通俗理解&#xff0c;内存就是房间&#xff0c;地址就是门牌号 指针和指针变量 指针&#xff08;Pointer&#xff09;是一种特殊的变量类型&#xff0c;它用于存储内存地址。指针的实…...

记录--病理切片图像处理

简介 数字病理切片&#xff0c;也称为全幻灯片成像&#xff08;Whole Slide Imaging&#xff0c;WSI&#xff09;或数字切片扫描&#xff0c;是将传统的玻片病理切片通过高分辨率扫描仪转换为数字图像的技术。这种技术对病理学领域具有革命性的意义&#xff0c;因为它允许病理…...

Android使用shape属性绘制边框内渐变色

目录 先上效果图实现方法shape属性介绍代码结果 先上效果图 这是使用AndroidStudio绘制的带有渐变色的边框背景色 实现方法 项目中由于UI设计需求&#xff0c;需要给按钮、控件设置带有背景色效果的。以下是UI效果图。 这里我们使用shape属性来绘制背景效果。 shape属性介…...

分类算法(数据挖掘)

目录 1. 逻辑回归&#xff08;Logistic Regression&#xff09; 2. 支持向量机&#xff08;Support Vector Machine, SVM&#xff09; 3. 决策树&#xff08;Decision Tree&#xff09; 4. 随机森林&#xff08;Random Forest&#xff09; 5. K近邻&#xff08;K-Nearest …...

scaling laws for neural language models

关于scaling law 的正确认识 - 知乎最近scaling law 成了最大的热词。一般的理解就是&#xff0c;想干大模型&#xff0c;清洗干净数据&#xff0c;然后把数据tokens量堆上来&#xff0c;然后搭建一个海量H100的集群&#xff0c;干就完了。训练模型不需要啥技巧&#xff0c;模型…...

水经微图IOS版5.2.0发布

随时随地&#xff0c;微图一下&#xff01; 水经微图&#xff08;简称“微图”&#xff09;IOS新版已上线。 在该版本中主要新增图层树节点排序功能、常规&#xff08;矩形、圆、椭圆、扇形&#xff09;绘制功能、地形夸张等主要功能。 当前版本 当前版本号为&#xff1a;5…...

聚观早报 | 哪吒L上市定档;iPhone 16最新高清渲染图

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 4月10日消息 哪吒L上市定档 iPhone 16最新渲染图 华为太空表与问界M9联动 蔚来万里长城加电风景线正式贯通 Red…...

【C++】手搓 list 容器

送给大家一句话&#xff1a; 若结局非你所愿&#xff0c;就在尘埃落定前奋力一搏。—— 《夏目友人帐》 手搓 list 容器 1 前言1.1 底层结构1.2 使用场景1.3 功能简介 2 框架搭建2.1 节点类2.2 list 类2.3 迭代器类 3 功能实现3.1 begin() 与 end()3.2 插入操作3.3 删除操作3…...

LinkedList用法详解(Java)

LinkedList LinkedList 是 Java 中的一个常用类&#xff0c;它实现了 List 接口&#xff0c;采用双向链表数据结构。 1. 创建 LinkedList 对象 import java.util.LinkedList;LinkedList<String> linkedList new LinkedList<>();2. 添加元素 linkedList.add(&q…...

34. 在排序数组中查找元素的第一个和最后一个位置

Problem: 34. 在排序数组中查找元素的第一个和最后一个位置 文章目录 思路解题方法复杂度Code 思路 二分查找&#xff0c; 口诀&#xff1a;左右右&#xff0c;求左段区间的右端点&#xff0c;动r 解题方法 两次二分查找 复杂度 时间复杂度: O ( l o g n ) O(logn) O(logn) 二…...

音乐文件逆向破解

背景 网易云等在线音乐文件的加密源码都按照一定的规则加密&#xff0c;通过对音乐文件的源码分析转化&#xff0c;有望实现对加密文件的解密 实现内容 实现对加密音乐文件的解密 实现对无版权的音乐文件的转化 实现环境 010editor 010 Editor是一个专业的文本编辑器和十六…...

xhci 数据结构

xhci 数据结构 xhci 数据结构主要在手册上有详细的定义&#xff0c;本文根据手册进行归纳总结&#xff1a; 重点关注的包括&#xff1a; device contexttrb ringtrb device context设备上下文 设备上下文数据结构由xHC管理&#xff0c;用于向系统软件报告设备配置和状态信息。…...

Go——Goroutine介绍

一. 并发介绍 进程和线程 进程是程序在操作系统中一次执行过程&#xff0c;系统进程资源分配和调度的一个独立单位。线程是进程执行的实体&#xff0c;是CPU调度和分派的基本单位&#xff0c;它是比进程更小的能独立运行的基本单位。一个进程可以创建和撤销多个线程&#xff0c…...

Centos7,部署etcd集群,基于二进制包,https安全通讯

由于etcd集群https通讯&#xff0c;所以需要自建CA数字证书&#xff0c;学习使用https部署etcd集群前&#xff0c;可以先完成一下&#xff0c;基于http通信的etcd集群&#xff1a; 关于CA原理以及工作可以阅读&#xff0c;以下两篇文章&#xff1a; CA工作原理 对称加密与非对…...

设置MariaDB,创建新库,新用户并授权其可以从任何主机登录

OS:CENTOS 7 1、从系统进入MariaDB # mysql -u root -p 这里的root是指MariaDB的管理员用户&#xff0c;和系统的root不搭边&#xff0c;只是同名而已。 2、看下有哪些库、用户 MariaDB [(none)]> show databases; MariaDB [(none)]>select user,host from mysql.us…...

每日一VUE——组件的生命周期

文章目录 VUE组件的生命周期生命周期钩子函数实例创建Teleport VUE组件的生命周期 组件生命周期 组件从创建到挂载、更新、到销毁的一系列过程被称为组件的生命周期。 生命周期函数 在组件的各个生命周期节点执行的函数&#xff0c;为生命周期钩子函数。 生命周期钩子函数…...

Redis中的BigKey

Redis中的BigKey 文章目录 Redis中的BigKey什么是BigKey&#xff1f;BigKey的危害找到Bigkey删除BigKey优化BigKeyBigKey对持久化的影响对AOF日志的影响对AOF重写和RDB的影响 什么是BigKey&#xff1f; 大 key 并不是指 key 的值很大&#xff0c;而是 key 对应的 value 很大。…...

MySQL中的存储过程详解(上篇)

使用语言 MySQL 使用工具 Navicat Premium 16 代码能力快速提升小方法&#xff0c;看完代码自己敲一遍&#xff0c;十分有用 拖动表名到查询文件中就可以直接把名字拉进来中括号&#xff0c;就代表可写可不写 目录 1.认识存储过程 1.1 存储过程的作用 1.2 存储过程简介…...

面试官:说一说CyclicBarrier的妙用!我:这个没用过...

写在开头 面试官&#xff1a;同学&#xff0c;AQS的原理知道吗&#xff1f; 我&#xff1a;学过一点&#xff0c;抽象队列同步器&#xff0c;Java中很多同步工具都是基于它的… 面试官&#xff1a;好的&#xff0c;那其中CyclicBarrier学过吗&#xff1f;讲一讲它的妙用吧 我&…...

企业网站seo数据/营销型网站分为哪几种

2019独角兽企业重金招聘Python工程师标准>>> 邹建锋&#xff1a;手机游戏系列化运营模式探讨 国内移动市场在爆发式的增长&#xff0c;移动终端在大规模的普及&#xff0c;用户越来越习惯在手机上玩游戏&#xff0c;那么什么样的游戏才能赚钱&#xff1f;该文档…...

公共资源交易网站建设方案/种子资源

PS&#xff1a;用代码画点这样写是为了跟后面的用鼠标画点线面区分出来画点drawPointGraphic: function () {//点有多种样式&#xff1a;一般的点&#xff0c;显示文字&#xff0c;显示图片//一般的点let wkt "POINT(113.566806 22.22445)";//样式//PS&#xff1a;其…...

高端企业门户网站建设费用/搜索引擎网站

原文地址&#xff1a;Go面试看这里了~&#xff08;三&#xff09; 1、数组和切片的区别&#xff1f; 切片是指针类型&#xff0c;数组是值类型。 数组的长度是固定的&#xff0c;切片不是&#xff0c;切片是动态的。 切片比数组多一个容量【cap】属性。 切片的底层是数组。…...

b2b网站发布信息平台/什么网站做推广比较好

上一节我们准备好了 macvlan 的实验环境&#xff0c;今天在 host1 和 host2 中创建 macvlan 网络 mac_net1&#xff1a; 注意&#xff1a;在 host2 中也要执行相同的命令。 ① -d macvlan 指定 driver 为 macvlan。 ② macvlan 网络是 local 网络&#xff0c;为了保证跨主机能…...

网站服务合同模板/360搜索引擎网址

本节内容&#xff1a;1&#xff0c;计算机的发展史2&#xff0c;计算机的组成1&#xff0c;计算机的发展史1946年2月14日&#xff0c;由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(ENIAC Electronic Numerical And Calculator)在美国宾夕法尼亚大学问世了。E…...

南京企业做网站/十大外贸平台

整数划分 &#xff0d;&#xff0d;&#xff0d; 一个老生长谈的问题:  1) 练练组合数学能力.2) 练练递归思想3) 练练DP总之是一道经典的不能再经典的题目:这道好题求:1. 将n划分成若干正整数之和的划分数。2. 将n划分成k个正整数之和的划分数。3. 将n划分成最大数不超过k的划…...