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

C/C++数据结构(十)—— 二叉查找树

文章目录

  • 1. 二叉查找树的概念
  • 2. 二叉查找树的实现
    • 🍑 定义节点
    • 🍑 函数接口总览
    • 🍑 构造函数
    • 🍑 拷贝构造
    • 🍑 赋值重载
    • 🍑 析构函数
    • 🍑 查找操作
      • 🍅 动图演示
      • 🍅 非递归实现
      • 🍅 递归实现
    • 🍑 插入操作
      • 🍅 动图演示
      • 🍅 非递归实现
      • 🍅 递归实现
    • 🍑 删除操作
      • 🍅 非递归实现
      • 🍅 递归实现
    • 🍑 中序遍历
  • 3. 二叉查找树的性能分析


1. 二叉查找树的概念

还记得我们之前学过的二叉树吗?

二又树是树的一种特殊形式,每个节点最多有 2 个孩子节点,下图就是一棵典型的二叉树:

在这里插入图片描述

那什么是二叉查找树呢?

二叉查找树(Binary Search Tree),也称二叉排序树或二叉搜索树,顾名思义,是用来查找数据的,它在二叉树的基础上,增加了几个规则:

  • 如果左子树不为空,则左子树上所有节点的值均小于根节点的值。
  • 如果右子树不为空,则右子树上所有节点的值均大于根节点的值。
  • 左、右子树也都是二叉搜索树。

下图就是一棵标准的二叉查找树:

在这里插入图片描述

这样一棵树,如何进行查找呢?

比如我们要查找的值是 6,查找过程如下:

(1)访问根节点 8,发现 6 < 8。

在这里插入图片描述

(2)访问根节点 8 的左孩子节点 3,发现 6 > 3。

在这里插入图片描述

(3)访问节点 3 的右孩子节点 6,发现正是要查找的节点。

在这里插入图片描述

对于一个节点分布相对平衡的二叉查找树,如果节点总数是 n,那么查找节点的时间复杂度就是 O(logn)O(logn)O(logn),和树的深度成正比。

另外,二叉查找树不仅可以用于查找,还有一个重要功能:维持节点的有序性。

我们来给这棵二叉树做一个中序遍历,先访问左子树,再访问根节点,最后访问右子树。

因此,对于上面例子中的二叉查找树,中序遍历的访问顺序(节点旁边的数字)如下:

在这里插入图片描述

按顺序输出,结果为:1, 3, 4, 6, 7, 8, 10, 13, 14

输出结果完全按照升序排列,二叉查找树保持了有序性!

正是这个原因,二叉查找树也被称为二叉排序树(Binary Sort Tree)。这样的二叉树无论进行多少次插入,删除操作,都始终保持有序。

2. 二叉查找树的实现

前面的二叉树是用 C 语言来实现的,那么这次的二叉查找树我们选择用 C++ 来实现。

🍑 定义节点

首先构建一个二叉树查找树的节点类,并且实现一个构造函数

// 节点类
template<class K>
struct BSTreeNode
{K _key; // 节点值BSTreeNode<K>* _left; // 左指针BSTreeNode<K>* _right; // 右指针// 构造函数BSTreeNode(const K& key):_key(key),_left(nullptr),_right(nullptr){}
};

🍑 函数接口总览

有了节点以后,我们就可以来实现二叉查找树了,下面是所有的接口函数:

//二叉搜索树
template<class K>
class BSTree
{typedef BSTreeNode<K> Node; // 把节点重定义成Node
public:// 构造函数BSTree();// 拷贝构造BSTree(const BSTree<K>& t);// 赋值重载BSTree<K>& operator=(BSTree<K> t);// 析构函数~BSTree();// 插入函数bool Insert(const K& key);// 删除函数bool Erase(const K& key);// 查找函数bool Find(const K& key);// 中序遍历void InOrder();
private:Node* _root; //指向二叉搜索树的根结点
};

🍑 构造函数

因为我们待会儿要实现拷贝构造,而在 C++ 里面,不管是拷贝构造,还是构造,只要是显示的写了,那么编译器就不会默认生成,所以我们可以用一个关键字 default 强制编译器自己生成构造函数。

public:// 构造函数(强制编译器自己生成)BSTree() = default;

🍑 拷贝构造

如果我们不实现拷贝构造的话,编译器会去调用默认的拷贝构造,而默认的拷贝构造是浅拷贝(也就是值拷贝),会引发析构两次的问题,所以我们需要自己去实现一个拷贝构造完成深拷贝。

private:Node* CopyTree(Node* root){// 如果是空树,直接返回空if (root == nullptr)return nullptr;Node* copyNode = new Node(root->_key); // 拷贝根结点copyNode->_left = CopyTree(root->_left); // 拷贝左子树copyNode->_right = CopyTree(root->_right); // 拷贝右子树return copyNode; // 返回拷贝的树}
public:// 拷贝构造(深拷贝)BSTree(const BSTree<K>& t){_root = CopyTree(t._root);}

这里的深拷贝其实就是前序遍历递归创建的过程。

那么为什么我们要 CopyTree 函数并且封装在私有域里面呢?

如果我们递归调用需要传 _root,在 C 语言中可以直接传递,但是 C++ 涉及到封装,根变成了私有,怎么传呢?

所以需要写一个子函数,然后去调用。

🍑 赋值重载

赋值重载函数的实现很简单,比如 BSTree<int> copy = t

我们知道函数传参如果不是引用而是对象的话就会调用拷贝构造函数,所以我们只需将这个拷贝构造出来的对象 copythis 指向的对象 t 进行交换,就相当于完成了赋值操作,而拷贝构造出来的对象 copy 会在该赋值运算符重载函数调用结束时自动析构。

public:// 赋值重载BSTree<K>& operator=(BSTree<K> t){swap(_root, t._root);return *this;}

🍑 析构函数

我们析构可以用递归的方式来实现,那么就要去写一个 Destroy 子函数,采用后序遍历的方式去释放每一个节点,当树中的结点被全部释放完以后,将对象当中指向二叉查找树的指针及时置空。

private:// 递归销毁函数void DestroyTree(Node* root){// 如果是空树,直接返回空if (root == nullptr)return;DestroyTree(root->_left); // 递归释放左子树中的节点DestroyTree(root->_right); // 递归释放右子树中的节点delete root; // 删除根结点}
public:// 析构函数~BSTree(){DestroyTree(_root); // 释放二叉查找树中的节点_root = nullptr; // 把根节点置为空}

注意:析构函数没有参数,那么就不能递归,所以这里套了一层子函数

🍑 查找操作

二叉查找树的查找操作与二分查找非常相似:

  • 如果要查找的树为空树,则直接返回空。
  • 如果不为空树,则从根节点开始比较,查找。
    • 若查找的值比根大,则往根的右子树查找
    • 若查找的值比根小,则往根的左子树查找。
    • 若查找的值等于当前节点的值,则查找成功,返回对应节点的地址。
  • 最多查找高度次,走到空,还没找到,这个值不存在。

现在我们要在下面这棵树中查找值为 13 的节点。

在这里插入图片描述

第一步:访问跟节点 8

在这里插入图片描述

第二步:根据二叉查找树的左子树均比根节点小,右子树均比根节点大的性质, 13 > 8 ,因此值为 13 的节点可能在根节点 8 的右子树当中,我们查看根节点的右子节点 10

在这里插入图片描述

第三步:与第二步相似, 13 > 10 ,因此查看节点 10 的右孩子 14

在这里插入图片描述

第四步:根据二叉查找树的左子树均比根节点小,右子树均比根节点大的性质, 13 < 14 ,因此查看 14 的左孩子 13 ,发现刚好和要查找的值相等:

在这里插入图片描述

🍅 动图演示

在下面动图中,假设要查找值为 50 的节点:

在这里插入图片描述

对于二叉查找树的查找代码,这里给出两个版本供大家参考:递归和非递归。

🍅 非递归实现

二叉查找树的查找函数非递归实现:

public:// 查找函数bool Find(const K& key){Node* cur = _root;while (cur){if (cur->_key < key) // 如果key值大于当前节点的值{cur = cur->_right; // 就去当前节点的右子树当中查找}else if (cur->_key > key) // 如果key值小于当前节点的值{cur = cur->_left; // 就去当前节点的左子树当中查找}else // 当前节点的值等于key值{return true; // 说明找到了,直接返回true}}// 树为空或查找失败,返回falsereturn false;}

🍅 递归实现

二叉查找树的查找函数递归实现(递归涉及到传参的问题,所以需要写一个子函数):

private:// 查找函数(递归实现的子函数)bool _FindR(Node* root, const K& key){// 如果是空树,那么直接返回空if (root == nullptr)return false;if (root->_key < key) // 如果key值大于根节点的值{return _FindR(root->_right, key); // 就去当根节点的右子树当中查找}else if (root->_key > key) // 如果key值小于根节点的值{return _FindR(root->_left, key); // 就去当根节点的左子树当中查找}else // 如果key值等于根节点的值{return true; // 查找成功,返回true}}
public:// 查找函数(递归实现)bool FindR(const K& key){return _FindR(_root, key); // 去调用查找的子函数}

🍑 插入操作

二叉查找树在插入新节点的时候,都必须遵守原有的规则(二叉查找树的规则)。

对于任意一个待插入的元素 x 都是插入在二叉排序树的叶子结点,问题的关键就是确定插入的位置,从根结点开始进行判断,直到到达叶子结点,则将待插入的元素作为一个叶子结点插入即可。

  • 如果是空树,则直接将插入节点 x 作为二叉查找树的根结点。
  • 如果不是空树,按二叉查找树性质,从根结点开始进行判断插入位置。
    • 若插入节点的值小于根节点的值,则需要将该节点插入到根节点的左子树当中。
    • 若插入节点的值大于根节点的值,则需要将该节点插入到根节点的右子树当中。
  • 注意:如果插入的值等于当前节点的值,那么也是插入失败的(因为二叉查找树中不存在有两个相同节点的值)

假设我们现在要插入值为 0 的节点

在这里插入图片描述

第一步:访问根结点 8

在这里插入图片描述

第二步:根据二叉排序树的左子树均比根节点小,右子树均比根节点大的性质, 0 < 8 ,因此值为 0 的节点应该插入到根节点 8 的左子树当中,我们查看根节点的左子节点 3 :

在这里插入图片描述

第三步:根据二叉排序树的左子树均比根节点小,右子树均比根节点大的性质, 0 < 3 ,因此值为 0 的节点应该插入到根节点 3 的左子树当中,我们查看根节点的左子节点 1 :

在这里插入图片描述

第四步:根据二叉排序树的左子树均比根节点小,右子树均比根节点大的性质, 0 < 1 ,因此值为 0 的结点应该插入到节点 1 的左子树当中,访问节点 1 的左孩子,发现为空,则将 0 作为 1 号节点的左孩子插入。

在这里插入图片描述

🍅 动图演示

假设我们现在要插入值为 63 的节点:

在这里插入图片描述

有没有发现,插入操作和查找操作的原理是一样滴?

同样,我这里给大家提供递归和非递归两个版本。

🍅 非递归实现

使用非递归方式实现时,需要定义一个 cur 指针记录当前节点,还需要定义一个 parent 指针记录 cur 的父节点。当 cur 指向空时,通过 parent 判断将 key 插入到左边还是右边。

在这里插入图片描述

二叉查找树的插入函数非递归实现:

	// 插入函数(非递归实现)bool Insert(const K& key){// 第一次插入,根节点为空if (_root == nullptr){_root = new Node(key); // 直接把key节点作为树的根结点return true; // 插入成功,返回true}// 第二次插入的时候Node* parent = nullptr; // 记录cur的父节点Node* cur = _root;while (cur){if (cur->_key < key) // key大于当前节点,cur往右边走{parent = cur;cur = cur->_right;}else if (cur->_key > key) // key小于当前节点,cur往左边走{parent = cur;cur = cur->_left;}else // key等于当前节点的值{return false; // 插入失败,返回false}}// 当循环结束,说明cur找到了空的位置cur = new Node(key);if (parent->_key < key) // 如果key值大于当前parent节点的值{parent->_right = cur; // 就把key连接到parent的右边}else // 如果key值小于当前parent节点的值{parent->_left = cur; // 就把key连接到parent的左边}// 插入成功,返回truereturn true; }

🍅 递归实现

二叉查找树的查找函数递归实现(递归涉及到传参的问题,所以需要写一个子函数):

private:// 插入函数(递归实现的子函数)bool _InsertR(Node*& root, const K& key) // 引用传参,root是_root的别名{if (root == nullptr) // 如果是空树{root = new Node(key); // 直接把key节点作为树的根结点return true; // 插入成功,返回true} // 如果不是空树if (root->_key < key) // 如果key大于当前节点的值{return _InsertR(root->_right, key); // 把key插入到右子树当中}else if (root->_key > key) // 如果key小于当前节点的值{return _InsertR(root->_left, key); // 把key插入到左子树当中}else // 如果key等于当前节点的值{return false; // 插入失败,直接返回false}}
public:// 插入函数(递归实现)bool InsertR(const K& key){return _InsertR(_root, key);}

🍑 删除操作

删除操作与查找和插入操作不同,首先查找元素是否在二叉搜索树中,如果不存在,则返回 nullptr,否则要删除的结点可能分以下三种情况进行处理:

  • 待删除的节点 x 是叶子节点(也就是 x 无左右孩子节点)。
  • 待删除的节点 x 有一个孩子(左孩子或者右孩子)。
  • 待删除的节点 x 有两个孩子(即左右孩子都存在)。

那么就这三种情况,我们来分类讨论一下:

情况一:被删除的节点 x 是叶子节点,那么直接从二叉排序树当中移除即可,也不会影响树的结构

在这里插入图片描述

动图演示:删除值为 5 的节点

在这里插入图片描述

情况二:被删除的节点 x 仅有一个孩子

  • 如果只有左孩子,没有右孩子,那么只需要把要删除节点的左孩子链接到要删除节点 x 的父亲节点,然后直接删除 x 节点;

  • 如果只有右孩子,没有左孩子,那么只需要把要删除节点的右孩子链接到要删除结点 x 的父亲节点,然后直接删除 x 节点;

假设我们要删除值为 14 的结点,其只有一个左孩子结点 13 ,没有右孩子 。

第一步:先找到 14 的父节点 10,让其父节点 10 指向其左孩子 13

在这里插入图片描述

第二步:删除释放 14 节点即可。

在这里插入图片描述

我们再以删除结点 10 为例,再看一下没有左孩子,只有一个右孩子的情况。

第一步:先找到 10 的父节点 8,让其父节点 8 指向其右孩子 14

在这里插入图片描述

第二步:删除释放 10 节点即可。

在这里插入图片描述

动图演示:删除值为 71 的节点,该节点只有一个左孩子

在这里插入图片描述

动图演示:删除值为 7 的节点,该节点只有一个右孩子

在这里插入图片描述

情况三:被删除结点的左右孩子都存在

对于这种情况就复杂一些了,我们以下面这颗二叉查找树为例进行说明:

在这里插入图片描述

对于上面的二叉查找树的中序遍历结果如下所示:

在这里插入图片描述

现在我们先不考虑二叉排序上的删除操作,而仅在得到的中序遍历结果上进行删除操作。我们以删除中序遍历结果当中的根节点 8 为例进行说明:

在这里插入图片描述

当删除中序遍历结果中的 8 之后,哪一种方式不会改变中序遍历结果的有序性呢?

很简单,我么可以用 7 或者 9 来填充 8 的位置,都不会影响整个数组的有序性。

那么此时就相当于删除 根节点 8,然后根节点 左子树当中的最大元素 7 来替换根节点 8 的位置,或者用根节点的 右子树当中最小元素 9 来替换根节点 8 的位置。

所以删除操作要用替换的方式来进行,也就是替换 左子树的最大值节点 或者 右子树的最小值节点

下面就来看删除左右孩子都存在的结点是如何实现的,依旧以删除根节点 8 为例。首先我们先用根节点 8 的左子树当中值最大的结点 7 来替换根节点的情况。

第一步:获得待删除节点 8 的左子树当中值最大的节点 7(这一步可以通过从删除节点的左孩子 3 开始,一个劲地访问右子结点,直到叶子结点为止获得,因为左子树的最大值一定在最右边):

在这里插入图片描述

第二步:将删除节点 8 的值替换为 7

在这里插入图片描述

第三步:删除根节点左子树当中值最大的节点(这一步可能左子树中值最大的节点存在左子节点,而没有右子节点的情况,那么删除就退化成了第二种情况,递归调用即可):

在这里插入图片描述

我们再来看一下使用根节点 8 的右子树当中值最小的节点 9 来替换根节点的情况。

第一步:查找删除节点 8 的右子树当中值最小的节点,即 9 (先访问删除节点的右子节点 10,然后一直向左走,直到左子结点为空,则得到右子树当中值最小的节点,因为右子树的最小值一定在最左边)。

在这里插入图片描述

第二步:将删除结点 8 的值替换为 9

在这里插入图片描述

第三步:删除根节点右子树当中值最小的节点。

在这里插入图片描述

动图演示:删除值为 15 的节点,该节点左右孩子都存在

在这里插入图片描述

以上就是删除二叉查找树的三种情况的分析。

这里还是提供两个版本给大家参考:递归和非递归。

🍅 非递归实现

我这里采用 右子树的最小值节点 来和待删除节点的值进行替换:

  • 定义 minParent 用来记录待删除节点的右子树当中最小值节点的父节点。
  • 定义 minRight 用来记录待删除节点的右子树当中最小值节点。

二叉查找树的删除操作非递归实现:

public:// 删除函数(非递归实现)bool Erase(const K& key){Node* parent = nullptr; // 记录待删除节点的父节点Node* cur = _root; // 记录删除节点while (cur) // 先找到要删除的节点{if (cur->_key < key) // key大于当前节点的值,就往该节点的左子树查找{parent = cur;cur = cur->_right;}else if (cur->_key > key) // key小于当前节点的值,就往该节点的右子树查找{parent = cur;cur = cur->_left;}else // 找到了要删除的节点,分三种情况讨论{if (cur->_left == nullptr) // 如果待删除节点的左子树为空{if (cur == _root) // 如果要删除的cur是根节点(此时parent为nullptr){_root = cur->_right; // 那么直接把二叉查找树的根节点改为cur的右孩子即可}else // 如果要删除的cur不是根节点(此时parent不为nullptr){if (cur == parent->_left) // 如果待删除节点(cur)是其父节点(parent)的左孩子{parent->_left = cur->_right; // 那么就让父节点(parent)的左指针(left)指向删除节点(cur)的右子树}else // 如果待删除节点(cur)是其父节点(parent)的右孩子{parent->_right = cur->_right; // 那么就让父节点(parent)的右指针(right)指向删除节点(cur)的右子树}}delete cur; // 释放待删除节点}else if (cur->_right == nullptr) // 如果待删除节点的右子树为空{if (cur == _root) // 如果要删除的cur是根节点(此时parent为nullptr){_root = cur->_left; // 那么直接把二叉查找树的根节点改为cur的左孩子即可}else // 如果要删除的cur不是根节点(此时parent不为nullptr){if (cur == parent->_left) // 如果待删除节点(cur)是其父节点(parent)的左孩子{parent->_left = cur->_left; // 那么就让父节点(parent)的左指针(left)指向待删除节点(cur)的左子树}else // 如果待删除节点(cur)是其父节点(parent)的右孩子{parent->_right = cur->_left; // 那么就让父节点(parent)的右指针(left)指向待删除节点(cur)的左子树}}delete cur; // 释放待删除节点}else // 如果待删除节点的左右子树都不为空{// 这里选择用右子树的最小值节点替换(左子树当中最大值也可以)Node* minParent = cur; // 记录待删除节点右子树当中值最小节点的父节点Node* minRight = cur->_right; // 记录待删除节点右子树当中值最小的节点while (minRight->_left) // 寻找待删除节点右子树当中值最小的节点{minParent = minRight;minRight = minRight->_left;}// 循环结束,说明找到了cur->_key = minRight->_key; // 把待删除节点的值替换成minRight的值if (minParent->_left == minRight) // 如果minRight是其父节点的左孩子{minParent->_left = minRight->_right; // 就让父节点的左指针(left)指向minRight的右子树即可} else // 如果minRight是其父节点的右孩子{minParent->_right = minRight->_right; // 就让父节点的右指针(right)指向minRight的右子树即可}delete minRight; // 释放minRight节点}return true; // 删除成功,返回true}}return false; // 没有找到待删除节点,即删除失败,返回false}

🍅 递归实现

二叉查找树的删除操作递归实现思路如下:

  • 定义 minParent 用来记录待删除节点的右子树当中最小值节点的父节点。
  • 定义 minRight 用来记录待删除节点的右子树当中最小值节点。

当找到根节点的右子树当中最小值节点 minRight 时,先把根节点的值和 minRight 进行交换,然后再重新调用递归删除函数从当前根节点的右子树开始,删除右子树当中的 minRight

private:// 删除函数(递归实现的子函数)bool _EraseR(Node*& root, const K& key){if (root == nullptr) // 如果是空树return false; // 删除失败,直接返回falseif (root->_key < key) // 如果key大于根节点的值{return _EraseR(root->_right, key); // 那么待删除节点在根的左子树当中}else if (root->_key > key) // 如果key小于根节点的值{return _EraseR(root->_left, key); // 那么待删除节点在根的右子树当中}else // 找到了待删除节点{Node* del = root; // 先保存根节点if (root->_left == nullptr) // 如果待删除节点的左子树为空{root = root->_right; // 那么根的右子树作为二叉树新的根节点}else if (root->_right == nullptr) // 如果待删除节点的右子树为空{root = root->_left; // 那么根的左子树作为二叉树新的根节点}else // 如果待删除节点的左右子树均不为空{Node* minRight = root->_right; // 记录根节点右子树当中值最小的节点while (minRight->_left) // 寻找根节点右子树当中值最小的节点{minRight = minRight->_left; // 右子树当中值最小的节点一定是在最左边,所以一直往左查找}// 找到以后,把根节点的值和minRight的值交换swap(root->_key, minRight->_key);return _EraseR(root->_right, key); // 此时,就转换成在根的右子树当中去删除这个key,这里删除这个key一定会走作为空的场景。}delete del; // 释放根节点return true; // 删除成功,返回true}}
public:// 删除函数(递归实现)bool EraseR(const K& key){return _EraseR(_root, key);}

🍑 中序遍历

中序遍历和二叉树的中序实现一样,只不过因为中序是递归遍历,涉及到传参,所以需要写一个子函数。

private:// 中序遍历(递归实现的子函数)void _InOrder(Node* root){if (root == nullptr) // 如果是空树,直接返回空return;_InOrder(root->_left); // 递归遍历左子树cout << root->_key << " "; // 打印每个节点的值_InOrder(root->_right); // 递归遍历右子树}
public:// 中序遍历(递归实现)void InOrder(){_InOrder(_root);cout << endl;}

3. 二叉查找树的性能分析

插入和删除操作都必须先查找,查找效率代表了二叉搜索树中各个操作的性能。

二叉查找树的插入和查找、删除操作的最坏时间复杂度为 O(h)O(h)O(h),其中 h 是二叉查找树的高度。最极端的情况下,我们可能必须从根节点访问到最深的叶子节点,斜树的高度可能变成 n,插入和删除操作的时间复杂度将可能变为 O(n)O(n)O(n)

下图就是两颗斜树(就相当于单链表)。这也是二叉查找树在进行多次插入操作后可能发生的不平衡问题,也是二叉查找树的缺陷所在,但这依旧不妨碍其作为一个伟大的数据结构。

在这里插入图片描述

对有 n 个节点的二叉查找树,若每个元素查找的概率相等,则二叉查找树平均查找长度是节点在二叉查找树的深度的函数,即节点越深,则比较次数越多。

但对于同一个关键码 key 集合,如果各关键码 key 插入的次序不同,可能得到不同结构的二叉查找树。

  • 最优情况下,二叉搜索树为完全二叉树(或者接近完全二叉树),其平均比较次数为:log2Nlog_2 Nlog2N
  • 最差情况下,二叉搜索树退化为单支树(或者类似单支),其平均比较次数为:N2\frac{N}{2}2N

如果退化成单支树,二叉搜索树的性能就失去了。那么后面的 AVL 树和红黑树就可以上场了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4503409.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

网站安全检测:推荐8款免费的 Web 安全测试工具

随着 Web 应用越来越广泛&#xff0c;Web 安全威胁日益凸显。黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到Web服务器的控制权限&#xff0c;轻则篡改网页内容&#xff0c;重则窃取重要内部数据&#xff0c;更为严重的则是在网页中植入恶意代码&#xff0c;…...

常用编码说明-GB2312

2.5.1 GB2312编码 2.5.1.1 GB2312介绍 GB2312是汉字字符集和编码的代号&#xff0c;中文全称为 “信息交换用汉字编码字符集” &#xff0c;由中华人民共和国国家标准总局发布&#xff0c;一九八一年五月一日实施。GB2312 字符集 (character set) 只收录简化字汉字&#xff0c;…...

遍历对象的方法

遍历对象的方法一、vue中v-for遍历对象二、for...in 遍历数组和对象都可以三、Object的方法四、Object.getOwnPropertyNames(obj)五、使用Reflect.ownKeys(obj)遍历一、vue中v-for遍历对象 <el-form-item label"状态&#xff1a;"><el-select v-model"…...

YY0709|听觉报警信号要求及测试方法

上一篇我们介绍了视觉报警信号的要求,今天主要来介绍一下听觉报警信号的要求。 查阅《YY0709-2009 医用电气设备 第1-8部分:安全通用要求 并列标准》,我们可以看到:视觉报警信号的要求主要集中在标准第201.3.2条款,听觉报警信号的要求主要集中在201.3.3条款,如之前所说,…...

Java+MySQL基于ssm的残疾人管理系统

我国残疾人人口数量相当巨大,据中残联给出的数据,我国约有8500万残疾人。残疾人是社会弱势群体,并且数量庞大影响人数众多,如何能更好的对这些残疾人进行关注和帮助他们更好的生活是当下社会研究的一个主要问题之一,于是我们提出了残疾人信息管理系统的设计与开发。 本课题是一…...

windows子系统ubuntu,WSL,出现 Error: EACCES: permission denied, rename /xx/xx/.staging/node_modules/xx/xx

问题 Error: EACCES: permission denied, rename /xx/xx/.staging/node_modules/xx/xx ->/xx/xx/node_modules/.staging/node_modules/xx/yy背景 npm i egg-bin 时出现了这个问题 还试了一些其他的&#xff0c; npm i moment没有问题 npm i cnpm会出这个问题 笔者尝试了 …...

YOLO-V5 算法和代码解析系列 —— 学习路线规划综述

目录标题为什么学习 YOLO-V5 &#xff1f;博客文章列表面向对象开源项目学习方法预备知识项目目录结构为什么学习 YOLO-V5 &#xff1f; 算法性能&#xff1a;与YOLO系列&#xff08;V1&#xff0c;V2&#xff0c;V3&#xff0c;V4&#xff09;相比&#xff0c;YOLO-V5效果最好…...

ROS学习笔记(一):ROS noetic的安装

前言 ROS是一个机器人操作系统&#xff0c;机器人的不同模块之间的数据传输都在ROS上进行&#xff0c;下面记录一下ROS noetic的安装和基本使用 一、预备 ROS的不同版本和Ubuntu的不同版本向适配&#xff0c;这里与ROS noetic匹配的linux系统版本为Ubuntu20.04&#xff0c;需…...

第二届中国(广州)移动互联网大会即将开幕

第二届“中国&#xff08;广州&#xff09;移动互联网大会”将于2015年11月13日在广东省广州市召开&#xff0c;本次活动得到了新炬网络的战略支持&#xff0c;为大家提供一个有关“移动互联网”合作交流的平台&#xff0c;共同促进国内移动互联网理论研究和技术应用的发展。关…...

WEB安全测试要点总结

一、大类检查点&#xff1a; 大类 细项 上传功能 绕过文件上传检查功能 上传文件大小和次数限制 注册功能 注册请求是否安全传输 注册时密码复杂度是否后台检验 激活链接测试 重复注册 批量注册问题 登录功能 登录请求是否安全传输 会话固定 关键Cookie是否HttpO…...

Arthas常用命令和实践分享

一、序言 通常&#xff0c;本地开发环境无法访问生产环境。在实际工作中&#xff0c;我们会经常遇到在客户现场出现各种奇怪的问题&#xff0c;想要查看具体某个具体的对象&#xff0c;可能要打镜像&#xff0c;还要走银行内部的流程&#xff0c;整体很耗费时间&#xff0c;而…...

汉字GB2312编码字符集

由于编码规则是固定的&#xff0c;因此汉字编码后的结果也是确定的&#xff0c;因此可以直接使用字典查找方法进行编解码&#xff0c;本文列举下编码后对应的数值&#xff0c;方便查找。 概要说明 GB2312标准共收录6763个汉字&#xff0c;其中一级汉字3755个&#xff0c;二级汉…...

java jstat 命令_jstat 命令

NAMEjstat - Monitors Java Virtual Machine (JVM) statistics. This command is experimental and unsupported.SYNOPSISjstat [Options] vmid [interval] [count]Options&#xff0c;选项vmid&#xff0c;VM的进程号&#xff0c;即当前运行的java进程号interval&#xff0c;间…...

华为HCIA(六)以太网链路聚合与交换机堆叠、集群

网络可靠性需求 随着网络的快速普及和应用的日益深入&#xff0c;各种增值业务得到了广泛部署&#xff0c;网络中断可能导致大量业务异常、造成重大经济损失。因此&#xff0c;作为承载业务主体的基础网络&#xff0c;其可靠性成为备受关注的焦点。网络的可靠性可以从单板、设备…...

七夕将至,20行js代码给女友做个卡通P图微信机器人

七夕将至&#xff0c;又到了各位程序猿给女友&#xff0c;老婆送礼物的节日。今年老婆规定了&#xff0c;不能花费太多钱&#xff0c;还禁止买淘宝直男礼物。真的太难了&#x1f63f;&#xff0c;想破头皮也不知道送啥好&#xff0c;头发却已经掉了一缕又一缕&#xff0c;什么代…...

2018第四届中国互联网安全领袖峰会8月零距离对话全球大咖!

从“安全新生态”理念的首次提出&#xff0c;到“BAT同台话安全”的格局形成; 从13家国内安全上市公司掌门人圆桌达成“网络安全产业中坚共识”&#xff0c;到500家全球领袖企业聚集一堂; 从世界头号传奇黑客凯文米特尼克首度来华&#xff0c;到数百位全球安全领袖共同分享; 从…...

【安信可IDE专题 ①】多角度、多方位讲解安信可8266ESP32 一体化开发环境 如何编译各种SDK版本代码

本系列博客学习由 安信可科技 - 官方博客 技术分享&#xff0c;如有疑问请留言或联系邮箱。 1、【esp8266】多角度、多方位讲解安信可 esp8266/esp32 一体化环境如何编译各种SDK版本代码到esp8266模组&#xff1b; 1、【esp32】多角度、多方位讲解安信可 esp8266/esp32 一体化…...

极客Linux日记-2022年1月4日

--------今天是2022年1月4日 星期二 今天来聊一聊成长、学习、生活 这个社会我觉得更多的是你不要什么。剩下的就是你要的...

2017年乌镇互联网大会部分要点实地记录

乌镇互联网大会部分嘉宾分享要点实录 一、 上午互联网大会开幕式部分嘉宾致辞 &#xff08;一&#xff09;苹果首席执行官 Cook&#xff1a; 1、很多人都在谈论 AI&#xff0c;我并不担心机器人会像人一样思考&#xff0c;我 担心人像机器一样思考&#xff01; 2、我们相信 AR …...

升级android安全补丁,谷歌发布 2019 年 12 月的 Android 安全补丁

原标题&#xff1a;谷歌发布 2019 年 12 月的 Android 安全补丁 来源&#xff1a;站长之家谷歌为其最新的 Android 10 移动操作系统系列发布了 2019 年 12 月的 Android 安全补丁&#xff0c;以解决一些最关键的安全漏洞。由 2019 年 12 月 1 日和 2019 年 12 月 5 日安全补丁程…...

2022年7月12日世界互联网大会成立大会

7月12日&#xff0c;世界互联网大会成立大会在京举行。世界互联网大会国际组织总部设在中国北京&#xff0c;宗旨是搭建全球互联网共商共建共享平台&#xff0c;推动国际社会顺应数字化、网络化、智能化趋势&#xff0c;共迎安全挑战&#xff0c;共谋发展福祉&#xff0c;携手构…...

华为数通HCIA笔记 —— STP

STP 背景&#xff1a;出现2层环路&#xff08;会导致广播风暴、MAC地址表会震荡&#xff09; 报文&#xff1a;&#xff08;重要参数&#xff09; 什么是STP&#xff1f; STP&#xff08;Spanning Tree Protocol&#xff09;是运行在交换机上的二层破环协议&#xff0c;环路…...

【C语言项目】通讯录与可视化界面实现

目录 一、编译环境 1、VS2022 2、Easyx库 二、功能结构 三、遇到的问题 1、增加模块输入InputBox函数如何录入数据 2、 四、头文件&#xff08;准备工作&#xff09; 1、代码 2、头文件&#xff08;库&#xff09; 3、预处理 4、联系人信息结构体 5、函数声明 五、主…...

快速了解Docker

目录 1.简介 2.Docker的安装及环境配置 2.1.查看是否是root用户 2.2.查看当前内核版本 2.3.更新yum源 2.4.安装Docker所需要的工具包 2.5.设置yum源 2.6.下载安装Docker 2.7.启动Docker并且设置开机自启动 2.8.测试是否安装成功 3.Docker阿里云镜像仓库配置 4.Docker常…...

YottaChain将为其它区块链项目提供坚实、安全可靠的支撑

首先做个背景介绍。YottaChain是由中国十大青年科学家王东临带领的专业团队打造的&#xff0c;通过连接分散的存储资源&#xff0c;构成一个具有自修复能力的、规模浩瀚的、全球共享的统一存储池。而创始人王东临先生更是在密码学应用领域深耕20余年&#xff0c;研究分布式存储…...

raspberry树莓派自启动vnc

&#xfeff;&#xfeff;1 树莓派开发板连接路由器 2 等小灯全部点亮后&#xff0c;登陆路由器查看树莓派的ip地址 3 下载putty命令行登陆树莓派小板 4 输入账号pi和密码raspberry5 安装tightvncserversudo apt-get install tightvncserver6 设置vncsever访问端口tightvncser…...

Ajax实现验证用户登陆

Ajax验证用户登陆 我们再写一个Demo&#xff0c;利用Ajax实现对用户登陆的验证 login.jsp 注意这里的是js中的严格等于&#xff0c;不仅要求值相同&#xff0c;类型也要相同 <%--Created by IntelliJ IDEA.User: appleDate: 2022/2/7Time: 6:53 下午To change this templat…...

Java开发需要学什么!最常用的java集成开发环境

流行框架&#xff1a; 框架就是开发人员定义好的一套模板&#xff0c;程序员只需要往模板中添加响应的代码即可&#xff0c;填完代码&#xff0c;项目就完成了。所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发。 Spring Spring框…...

如何用python抓取网页小说(最新更新210809)

如何用python抓取网页小说 210809更新在前&#xff0c;经过一年多的时间&#xff0c;我再次捡起这串代码&#xff0c;发现不适用了&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff01;&#xff01;&#xff01;这是一件十分尴尬的事情&#xff0c;所以最近在着手更…...

代码重构优化

代码重构优化&#xff0c; 优化掉每次编写都需要重复编写的代码&#xff0c;实现代码简化编写。 1&#xff0e; 优化 Action 代码&#xff0c;抽取 BaseAction 1.1&#xff0e; 抽取模型驱动的代码 1.2&#xff0e; 分页查询代码重构优化...

书生云王东临:把握八大趋势 重点突破超融合

当传统IT基础架构遭遇越来越多的挑战时&#xff0c;我们总会面对这样一个问题&#xff1a; 设备A的年故障率是1%&#xff0c;设备B的可靠性是A的10倍(年故障率为0.1%)&#xff0c;价格也是A的10倍&#xff0c;那么&#xff0c;两台设备A组成的分布式系统的可靠性是多少? 正确答…...

沈师PTA2021Java编程题复习题库

致谢&#xff1a;感谢WalkingWithTheWind&#xff5e;帮我寻找PTA中的CSS选择器 1. 编程题&#xff1a;判断闰年 (10 分) 根据输入的正整数y所代表的年份&#xff0c;计算输出该年份是否为闰年 闰年的判断标准&#xff1a; 能够被4整除且不能被100整除的年份 或者能够被400整…...

华为总部,冲击你的视野

&#xff08;文章来源&#xff1a;新浪科技&#xff09; 很多人对华为这个名字并不陌生&#xff0c;但是很少有人知道它是个什么样子。今天我们就带大家去华为深圳的总部去感受一下华为的氛围。相信大家看了之后&#xff0c;一定会感到震撼的。 从01年起&#xff0c;华为基地…...

JDK中Atomic相关类的实现原理简介说明

转自: JDK中Atomic相关类的实现原理简介说明 下文笔者讲述Atomic相关类实现原理说明,如下所示 Atomic相关开头类的简介说明 JDK Atomic开头的类其中实现原子性的,都是使用CAS原理解决并发情况下原子性问题 --------------------------------------------------------------…...

ROS学习网站

1、首先当然是ROS 的Wiki了&#xff0c;学习ROS进程访问的网站了(教程文档) http://wiki.ros.org/cn/ROS/ 2、创客制造&#xff0c;初学者的官网&#xff08;里面提供了ROSUbuntu集成版&#xff0c;可以直接使用,对于初学者很好&#xff09; https://www.ncnynl.com/ 3、易科…...

华为无线设备WLAN QoS配置命令

[huawei]wlan [huawei-wlan-view]radio-2g-profile name r2 [huawei-wlan-radio-2g-prof-r2]undo wmm disable //使能WMM功能,缺省使能 [huawei-wlan-radio-2g-prof-r2]wmm mandatory enable //禁止不支持WMM功能的STA连接到已使能WMM功能的AP上 [huawei-wlan-radio-2g-prof-r2…...

非零基础自学Golang 第12章 接口与类型 12.2 接口的创建与实现 12.2.1 接口创建

非零基础自学Golang 文章目录非零基础自学Golang第12章 接口与类型12.2 接口的创建与实现12.2.1 接口创建第12章 接口与类型 12.2 接口的创建与实现 Go语言接口是方法的集合&#xff0c;使用接口是实现模块化的重要方式。 下面将重点介绍如何创建和实现一个Go语言接口。 12…...

CUDA Programming Model--CUDA编程模型

CUDA Programming Model 1 Kernels CUDA c 扩展了c&#xff0c;允许编程者定义C 函数&#xff0c;被称为kernel。每次执行&#xff0c;由N个不同的CUDA线程执行N次。 每个执行内核的线程拥有一额独一无二的线程ID&#xff0c;可以通过内置的threadIdx变量在内核中访问&#x…...

Fedora 9为DELL E6400安装无线网卡驱动全程实录

安装Fedora 9有一段时间了&#xff0c;一直没有安装无线网卡&#xff0c;因为平时工作都是有线网络&#xff0c;所以也并不是急需&#xff0c;今天闲暇之余顺便研究研究。 1. 首先在http://www.broadcom.com/support/802.11/linux_sta.php 上下载32位的驱动&#xff0c;下载完…...

华为端口安全

端口安全是交换机上的功能 端口安全功能将交换机接口学习到的MAC地址变为安全MAC地址&#xff08;包括安全动态MAC和sticky MAC&#xff09;&#xff0c;可以阻止除安全MAC之外的主机通过本接口和交换机通信&#xff0c;从而增强设备安全性 当主机C断开连接&#xff0c;默认交换…...

【JAVA】笔记(12)---集合(1)-概述篇

...集合特性:1)集合的长度可变,数组一经初始化,长度固定...2)集合可以储存不同类型的元素,而数组只能储存单一类型元素....3)集合中的所有元素都是引用数据类型(储存的都是对象的地址),数组既可以储存引用数据类型,也可以储存基本数据类型........楔子:1.集合相当于一…...

js 删除对象里的某个属性

删除属性有很多方法&#xff0c;学到了就在这里记录一下。 有一个对象 a 。有2个属性 b1 , c2 删除b&#xff0c;保留 c 1. 使用delete let a {b:1,c:2} delete a.b//true console.log(a)//{c:2}2. 使用解构 let a {b:1,c:2} let {b,...a} a console.log(a)//{c:2}3.使用…...

Ubuntu系统中如何删除一个用户

1.打开终端命令行&#xff0c;运用userdel命令删除指定的用户&#xff0c;注意要加sudo权限指令&#xff0c;如下图. sudo userdel ascend 2. 在删除的时候一定注意是在管理员目录下的&#xff0c;普通的用户是没有这个权限的 3. 删除指令执行完了以后怎么判断是否真正删除了…...

谈一谈SaaS产品的架构设计

1. SaaS 是什么 从字面中理解SaaS的全称是Software as a service, 即软件即服务。 从服务模式来看&#xff0c;SaaS是一种软件授权和交付模式&#xff0c;以订阅模式代替传统授权模式&#xff0c;以集中式部署代替用户环境部署&#xff0c;通常被认为是按需付费软件。 目前Saa…...

VIMS(虚拟镜像管理系统)

1、特性介绍 虚拟镜像管理系统VIMS (Virtual Image Management System) 是一种高性能的集群文件系统&#xff0c;使用时先将数据存储先格式化成VIMS格式&#xff0c;然后挂载到CNA上进行使用。VIMS文件系统使虚拟化技术的应用超出了单个存储系统的限制&#xff0c;其设计、构建…...

访问ftp服务器网页,访问ftp服务器是网页

访问ftp服务器是网页 内容精选换一换当您需要为裸金属服务器绑定弹性公网IP&#xff0c;使其可以与Internet通信时&#xff0c;请执行本节操作。已申请弹性公网IP&#xff0c;详细操作请参见“申请弹性公网IP”。登录管理控制台。选择“计算 > 裸金属服务器”。进入裸金属服…...

如何查找Oracle数据库安全漏洞的补丁

假设数据库发现了两个漏洞&#xff1a;CVE-2011-2239和CVE-2011-2253。 这两个漏洞的描述可以在Oracle 2011 年 7 月的重要补丁更新公告中找到。 在此网页的Patch Availability Table部分&#xff0c;如果Product Group为Oracle Database&#xff0c;其Patch Availability an…...

CMUSphinx Learn - Adapting the default acoustic model

Adapting the default acoustic model 调节默认声学模型 This page describes how to do some simple acoustic model adaptation to improve speech recognition in your configuration. Please note that the adaptation doesnt necessary adapt for a particular speaker. …...

python学习46:更改pip的国内源教程(windows)

玩过linux的都知道&#xff0c;装完系统后&#xff0c;经常需要修改源&#xff08;sources.list文件&#xff09;&#xff0c;windows上怕是很少修改源。 1&#xff0c;打开目录 2&#xff0c;新建文件夹pip 在这里新建一个叫pip的文件夹。 3&#xff0c;新建配置文件pip.ini…...

Web安全测试(一)-手工安全测试方法修改建议

常见问题 1.XSS(CrossSite Script)跨站脚本攻击XSS(CrossSite Script)跨站脚本攻击。它指的是恶意攻击者往Web 页面里插入恶意 html代码&#xff0c;当用户浏览该页之时&#xff0c;嵌入其中Web 里面的html 代码会被执行&#xff0c;从而达 到恶意用户的特殊目的。 测试方法…...

Android用户界面的设计方法心得,(8 Android) 用户界面UI设计

(8 Android) 用户界面UI设计3.1.1 Android界面视图类Android 图形化的用户界面(Graphical User Interface , GUI) 采用了结构清晰的MVC模型(Model-View-Controller) &#xff0c;其具体含义:提供了处理用户输入的控制器(Controller) ;显示用户界面的视图(View) ;保存数据和代码…...

2018中国网络安全大会6月在京召开

备受瞩目的第六届中国网络安全大会&#xff08;NSC 2018&#xff09;将于6月13日在北京国家会议中心举行&#xff0c;由赛可达实验室、国家计算机病毒应急处理中心、国家网络与信息系统安全产品质量监督检验中心、首都创新大联盟及百家行业联盟共同主办。 中国网络安全大会自20…...

CentOS /RHEL 系统更新安全补丁的方法

在 Linux 系统上&#xff0c;其中一个最重要的需求就是保持定期更新最新的安全补丁&#xff0c;或者为相应的 Linux 版本更新可用的安全补丁。在这篇文章中&#xff0c;我们将分享如何在 CentOS/RHEL 7/6 版本中设置在需要时自动更新重要的安全补丁。和它同一家族的其它 Linux …...

web安全测试之 xss攻击

web安全测试之 xss攻击 软件测试资源分享| 免费软件测试资料一、 背景知识1、 什么是 XSS 攻击&#xff1f;XSS 攻击&#xff1a; 跨站脚本攻击&#xff08;Cross Site Scripting&#xff09; &#xff0c; 为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。 故将跨站…...

ubuntu安装nvidia 750ti显卡驱动

NVIDIA &#xff08;英伟达&#xff09;公司已经发布了针对 Linux 用户的显卡驱动 Nvidia Driver 334.21&#xff0c;该驱动程序新增加支持 GeForce GTX 750 Ti、 GeForce GTX 750、 GeForce GTX 745 和 GeForce GTX TITAN。除此之外&#xff0c;NVIDIA 334.21 带来了不少的 bu…...

软件测试面试题:防火墙如何保证安全?

防火墙如何保证安全&#xff1f; &#xff08;一&#xff09;内部网络和外部网络之间的所有网络数据流都必须经过防火墙&#xff1b;&#xff08;二&#xff09;只有符合安全策略的数据流才能通过防火墙&#xff1b;&#xff08;三&#xff09;防火墙自身应具有非常强的抗攻击免…...

解决Sublime Text 3在GB2312编码下的中文乱码问题

为了方便演示&#xff0c;首先创建了一个GB2312编码的txt文件&#xff0c;我们使用Sublime打开后的效果如下图&#xff0c;注意看sublime的左下角&#xff0c;除了行列信息并无其他&#xff0c;一般而言&#xff0c;说明sublime是按照UTF8编码打开的文件&#xff1a; 为了解决编…...

深度学习框架PyTorch入门与实践:第九章 AI诗人:用RNN写诗

我们先来看一首诗。 深宫有奇物&#xff0c;璞玉冠何有。 度岁忽如何&#xff0c;遐龄复何欲。 学来玉阶上&#xff0c;仰望金闺籍。 习协万壑间&#xff0c;高高万象逼。 这是一首藏头诗&#xff0c;每句诗的第一个字连起来就是“深度学习”。想必你也猜到了&#xff0c;这首诗…...

Oracle OJVM安全补丁

什么是OJVM PSU&#xff1f; CPU: Critical Patch Update Oracle对于其产品每个季度发行一次的安全补丁包&#xff0c;通常是为了修复产品中的安全隐患。 PSU: Patch Set Updates Oracle对于其产品每个季度发行一次的补丁包&#xff0c;包含了bug的修复。Oracle选取被用户下载数…...

GSL中的运行统计

运行统计 本章描述了计算数据运行统计(也称为在线统计)的例程。这些例程适用于处理大型数据集&#xff0c;对于这些数据集&#xff0c;一次性存储在内存中可能不方便或不实用。数据可以采用单遍算法一次处理一个点。每次将一个数据点添加到累加器时&#xff0c;都会更新内部参…...

musl pwn 入门 (2)

在上一篇文章中我们学习了musl libc中内存分配的相关知识&#xff0c;了解了重要的数据结构及函数内容。本文将在此基础上进一步分析musl pwn的利用方式。 musl libc利用的核心思想是向free中传入一个假的chunk指针。由于free函数会通过该chunk进行回溯&#xff0c;获取到其所…...

程序员的一天:台湾个人移动游戏开发者

发表于2013-02-19 15:02| 15060次阅读| 来源CSDN| 132 条评论| 作者张宁移动游戏android许靖昕超级宝贝猪开发者的一天摘要&#xff1a;Cloud Hsu&#xff08;许靖昕&#xff09;半导体业软件架构师。从2010年一个外包案“厕所大战”游戏开始进入移动开发业&#xff0c;目前已有…...

一个台湾个人移动游戏开发者的一天

Cloud Hsu(许靖昕)一位来自台湾的个人游戏开发者&#xff0c;半导体业软件架构师。从2010年一个外包案“厕所大战”游戏开始进入移动开发业&#xff0c;目前已有多款移动游戏作品。虽然是兴趣使然&#xff0c;但也要没日没夜的coding&#xff0c;才能给自己一个交代。生活与工作…...

戒邪淫十三法

时代变迁迅速&#xff0c;以往农业时代的色 情场所&#xff0c;仅限于城市中几家妓 院、茶室而已&#xff0c;而且仅限于固定小街定点区域。但是如今工商业时代&#xff0c;重利轻义、道德不被重视&#xff0c;导致邪淫之风漫流。不但各大都市中&#xff0c;每隔三步就有一家变…...

MiniCMS - 吐槽

看到的深有感触&#xff0c; 写道我是个大嘴巴的人&#xff0c;喜欢不断的告诉别人我的感受和想法。当我刚写完MiniCMS的产品介绍后&#xff0c;发现吐槽的文字比产品介绍还长很多&#xff0c;使得产品介绍根本不像产品介绍。但是有很多话又不吐不快&#xff0c;所以我把想吐槽…...

(30 hackdays day 15) Bonsai + LeanCloud - 要有Search!

LeanCloud&#xff08;原AVOScloud&#xff0c;还是喜欢这名字哈&#xff09;是国内数一数二的BaaS产品。但由于还在快速发展期&#xff0c;所有还是缺少不少基本功能&#xff0c;比如搜索。好&#xff0c;问题来啦&#xff0c;搜索技术哪家强&#xff1f;Google&#xff1f;Bi…...

瘦脸针价格 瘦脸针效果 瘦脸针副作用金霞微整形

瘦脸针专业名称为肉毒素&#xff0c;是一种生物制品&#xff0c;可以通过基因工程的方法大规模生产。由于它具有神经阻断作用&#xff0c;眼科、整形、美容外科十分常用。瘦脸针瘦脸实质上就是采用注射治疗咬肌肥大瘦脸针效果也并身体会出现对抗肉毒杆菌素的瘦脸针抗体非百分之…...

cesuim原理篇(一)--渲染调度

转自&#xff1a;http://www.cnblogs.com/fuckgiser/p/5744509.html 原计划开始着手地形系列&#xff0c;但发现如果想要从逻辑上彻底了解地形相关的细节&#xff0c;那还是需要了解Cesium的数据调度过程&#xff0c;这样才能更好的理解&#xff0c;因此&#xff0c;打算先整体…...

[置顶] MiniCMS - 吐槽

看到的深有感触&#xff0c; 写道我是个大嘴巴的人&#xff0c;喜欢不断的告诉别人我的感受和想法。当我刚写完MiniCMS的产品介绍后&#xff0c;发现吐槽的文字比产品介绍还长很多&#xff0c;使得产品介绍根本不像产品介绍。但是有很多话又不吐不快&#xff0c;所以我把想吐槽…...

Cesium原理篇:1最长的一帧之渲染调度

原文&#xff1a;http://www.cnblogs.com/fuckgiser/p/5706842.html原计划开始着手地形系列&#xff0c;但发现如果想要从逻辑上彻底了解地形相关的细节&#xff0c;那还是需要了解Cesium的数据调度过程&#xff0c;这样才能更好的理解&#xff0c;因此&#xff0c;打算先整体介…...

呼叫中心人员如何做好压力的管理与调节

在当今这个忙碌多变的社会环境里&#xff0c;过重的生活、工作、课业等压力&#xff0c;正如很多媒体报道的一样&#xff0c;像是种文明病。如果我们把人体比作弹簧&#xff0c;那么压力就是一种外力。当外力超过弹簧的弹性限度时&#xff0c;弹簧会发生永久形变甚至造成断裂。…...

如何在缺乏沟通的情况下,发现数据背后的问题【搞笑版】

作者&#xff1a;陈老师 个人公众号&#xff1a;接地气学堂 陈老师新课&#xff1a;商业分析全攻略 https://edu.hellobi.com/course/308 用数据分析方法解决商业问题&#xff0c;目前已经100学员加入&#xff01;5星好评。分析思维双剑合璧&#xff0c;四大板块&#xff1a;概…...

温泉季节到了,设计师需要的SPA插画,完美体现那一池的温暖!

中医讲&#xff0c;秋燥冬藏&#xff0c;秋冬浴泉&#xff0c;旨在温润培元&#xff0c;因此在每次浴泉间隙&#xff0c;不要剧烈运动&#xff0c;以敛气 藏神&#xff0c;沐浴温泉后&#xff0c;可以根据保利温泉国际养生理疗师的建议&#xff0c;适当进行温泉暖补。 话不多…...

qml 中的function怎么加类型_皮炎有哪些类型?生活中皮炎要怎么预防?得了皮炎要注意哪些问题...

皮炎有哪些类型?要怎么预防?大家对皮炎一定不会陌生&#xff0c;这是一种很常见的疾病&#xff0c;一年四季都会发病&#xff0c;发病范围也不规律&#xff0c;好发部位在脸部。当皮炎发作时&#xff0c;很多人会把它的症状和别的疾病混淆&#xff0c;以至于没有对症用药&…...

排毒,美容,什么时间最好。

排毒&#xff0c;美容&#xff0c;什么时间最好。05&#xff1a;00-07&#xff1a;00肾上腺皮质素的分泌自凌晨4点开始加强&#xff0c;至此时已达高峰期。它抑制人体的蛋白合成&#xff0c;再生作用变缓&#xff0c;细胞再生运动降至最低点。此时由于水分积聚于细胞内&#xf…...

Windows下IIS部署网站流程

IIS Internet information service 是一个web服务器 1. IIS用于windows系统 2.apache用于Linux系统&#xff0c;JAVA的web服务器 3.Nginx用于Linux&#xff0c;负责负载均衡&#xff0c;反向代理 安装完IIS之后&#xff0c;去更改DNS的指向。 DNS指向&#xff1a;IP 和 域名 的…...

sparksql案例实操

sparksql案例实操解决语句如下 select * from( select , rank()over(partition by area order by clickCnt desc) from(select area, product_name, count()as clickCnt from( select a.*, p.product_name, c.area, c.city_name from user_visit_action a join product_info p…...

伯特说_终极笔记_备份

数组和链表的区别 从逻辑结构来看数组必须实现定义固定长度的元素&#xff0c;不能适应动态地增减的情况。当数据增加时&#xff0c;可能超出原先设定的元素个数&#xff1b;当数据减少时&#xff0c;造成内存浪费&#xff0c;数组可以根据下标直接存取。链表动态地进行存储分配…...

使用canvas绘制圆环动效

最近笔者有个需求&#xff0c;需求内容为&#xff1a;一组文字显示在圆环的周围&#xff0c;用户可添加文字&#xff0c;文字围绕着圆环&#xff0c;每个词对应圆环周围的的蓝色小圆点&#xff0c;当用户鼠标放在圆环上方小蓝点时时&#xff0c;实现放射出三角形&#xff0c;再…...

在html画一个自动缩放圆环,使用html5 canvas绘制圆环动效

最近笔者有个需求&#xff0c;需求内容为&#xff1a;一组文字显示在圆环的周围&#xff0c;用户可添加文字&#xff0c;文字围绕着圆环&#xff0c;每个词对应圆环周围的的蓝色小圆点&#xff0c;当用户鼠标放在圆环上方小蓝点时时&#xff0c;实现放射出三角形&#xff0c;再…...

【学习笔记】【Pytorch】张量(Tensor)的基础操作

【学习笔记】【Pytorch】张量&#xff08;Tensor&#xff09;的基础操作一、创建张量1.使用数据创建张量2.无需数据的创建选项3.torch.Tensor与torch.tensor的区别4.PyTorch中张量的创建方法的选择二、张量的属性1.张量的 torch.dtype2.张量的 torch.device3.张量的 torch.layo…...

【vi】vi编辑器卡死解决方法

我们在使用vi编辑器时&#xff0c;有时可能出现编辑器卡死的状态&#xff0c;不能输入&#xff0c;不能退出。其实这不是vi编辑器卡死&#xff0c;而是不小心把vi编辑器锁定了&#xff0c;编辑器处于假死状态&#xff0c;这时vi只是停止向终端输出而已。 原因是在windows下&…...

vi全部替换命令

&#xff1a;%s/old/new/g %表示全部域&#xff0c;不加%表示只替换光标那一行的...

vi删除选中内容_vi 删除指令的使用

1、vi列删除方法一&#xff1a;ctrlv进入列编辑模式&#xff1b;将光标定位子想要删除的起始列&#xff1b;移动光标至结束列(直接通过移动光标选中&#xff0c;对列不对齐时&#xff0c;可能比较长的行&#xff0c;无法全部选中&#xff0c;尤其是需要一直删除到行末&#xff…...

vi的使用与基本命令

vi的使用 一、初识vi 1、什么是vi vi&#xff0c;即终端中一款编辑器。 2、vi的应用场景 当我们要通过远程连接到服务器时&#xff0c;此时没有图形界面&#xff0c;当我们要对服务器上的文件进行编辑时&#xff0c;便可以使用vi进行快速地处理。其核心设计思想便是让程序员的…...

什么是VI设计?VI设计有什么作用?

什么是VI设计&#xff1f;VI设计有什么作用&#xff1f; 编辑&#xff1a;AGO(安可)品牌顾问 每当走在大街小巷上&#xff0c;大家一定会被各种不同的广告&#xff0c;各种有趣的标语所吸引住吧又或许被一家公司的形象所惊奇&#xff01;其实&#xff0c;越来越多的公司正在寻找…...

RK3288 Android7.1软件开发指南

文档主要介绍Rockchip RK3288 Android7.1 软件开发指南&#xff0c;旨在帮助软件开发工程师更快上手RK3288的开发及调试。 1.1 DDR 支持列表 RK3288 支持双通道 DDR3、DDR3L、LPDDR2、LPDDR3。 RK3288 DDR 颗粒支持程度列表&#xff0c;详见 RKDocs\Platform support lists 目…...

软件使用指南

概况...

免费范文网复制内容-百味书屋

1、找到对应范文 2、使用谷歌浏览器&#xff08;其他浏览器大同小异&#xff0c;只要找到对应选项即可&#xff09;&#xff0c;选择右上方三个点&#xff0c;找到设置 3、在搜索框中输入“JavaScript”&#xff0c;选择网站设置 4、往下拉&#xff0c;找到此选项&#xff0c;将…...

雨听 | 英语学习笔记(三)~作文范文:90后的网络生活

雨听 青苔入镜 檐下风铃 摇晃曾经 回忆 无从剪接 记录下学习点滴 注&#xff1a;范文来自懒人英语 由海轰整理 Post-90s Generation’s Network Life The term post-90s generation refers to people who were born in the 1990s. That is just the period of time whe…...

简历范文

基本资料   姓名&#xff1a;性别&#xff1a;男   学历&#xff1a;本科出生年月&#xff1a;1992-11-14   身高&#xff1a;175cm目前所在地&#xff1a;罗湖区   毕业院校&#xff1a;武汉科技大学   主修专业&#xff1a;电子信息科学>计算机科学与技术 …...

vb如何实现两台计算机数据包传送,通信连接论文,关于基于Ja的系统网络编程相关参考文献资料-免费论文范文...

导读:本论文可用于通信连接论文范文参考下载&#xff0c;通信连接相关论文写作参考研究。王东(南通农业职业技术学院江苏南通226007)摘 要&#xff1a;使用J论文范文a语言开发网络应用系统得到了越来越广泛的应用,本文结合J论文范文a网络编程的特点,介绍了Socket通信机制,阐述了…...

web数据服务器自带隔离,网络隔离论文,关于让文件在两网之间安全传输相关参考文献资料-免费论文范文...

导读:该文是关于网络隔离论文范文&#xff0c;为你的论文写作提供相关论文资料参考。面对新型网络攻击手段的出现和高安全度网络对安全的特殊需求,安全防护防范理念的网络隔离技术应运而生.网络隔离技术的目标是确保隔离有害的攻击,在可信网络之外和保证可信网络内部信息不外泄…...

计算机网络管理技术参考文献,报文网络论文,关于计算机网络管理相关技术相关参考文献资料-免费论文范文...

导读:这篇报文网络论文范文为免费优秀学术论文范文,可用于相关写作参考。(重庆工业职业技术学院信息工程学院,401120)网络协议报文格式大全:网络损伤模拟仪、广域网仿真仪如何模拟网络损伤&#xff0c;HoloWAN如何处理报文(3D动画)摘 要&#xff1a;文章分别从WBM(基于WEB 的网…...

计算机对物理应用论文范文,计算机科学论文,关于物理学对计算机科学的影响相关参考文献资料-免费论文范文...

导读:本论文是一篇免费优秀的关于计算机科学论文范文资料&#xff0c;可用于相关论文写作参考。物理学作为一门基础学科,一直是我们高中生(特别是理科生)学习的重点.但很多同学在接触物理过程中,认为学物理是无用的,因为其好像对我们的个人生活并没有什么实际性的帮助,反而因为…...

计算机硬件工作经验范文,「计算机硬件教师工作经验范文」-看准网

计算机硬件教师工作经验一工作时间&#xff1a;2017年11月14日-2019年11月14日 | 行业&#xff1a;运营商/增值服务 | 职位&#xff1a;计算机硬件教师1. 协助教研经理完成本学科教研工作。2. 本学科试题标注的审核与评估&#xff0c;本学科各场景下智能组卷效果评估。3. 筛选、…...

范文网站服务器配置,配置服务器论文,关于安装配置服务器相关参考文献资料-免费论文范文...

导读:本论文主要论述了配置服务器论文范文相关的参考文献,对您的论文写作有参考作用。办公自动系统服务器端的安装步骤介绍如下.1&#xff0e;规划服务器的硬盘,本例中,服务器采用一块146GB的SCSI硬盘,在安装操作系统(Windows Server 2003 R2)的时候,将硬盘划分为三个分区(大小…...

破解一款永久免费网络范文工具

这里会对服务器下发数据进行解密&#xff1a; try{Map bi.b(a.b(a.b(new String(bArr,"utf-8")));Log.d("MainActivity"&#xff0c;"get config ok:"b); 看看解密算法实现&#xff1a; public static String b(String str) throws Exception…...

虾皮上卖什么产品比较好?星志远电商

现在想要在虾皮开店的商家可以说是越来越多了&#xff0c;如果决定在下别开店的话&#xff0c;一定要确定好自己的开店方向是什么&#xff0c;比如说自己打算在虾皮平台上面卖什么产品。下面星志远电商小编为大家进行相关推荐。 如&#xff1a;3C电子&#xff0c;女装&#xff…...

小牌全新测量仪器 VS 是德原厂二手测量仪器,你选哪个?

在测量仪器行业&#xff0c;我相信任何一个电子工程师&#xff0c;特别是做硬件的小伙伴们&#xff0c;都有听过是德这个品牌吧&#xff0c;不少人手头的仪器应该也是是德的&#xff0c;老宇哥现在用的是德的示波器&#xff0c;电源&#xff0c;质量&#xff0c;性能没得说&…...

为什么传统软件厂商都想转型做Saas?

欢迎关注微信公众号&#xff1a;sap_gui (ERP咨询顾问之家) 早些年&#xff0c;我工作笔记用的最多的是微软的OneNote&#xff0c;这东西好用不说&#xff0c;不仅能够存在云端&#xff0c;也能存放在本地。可惜到了Office2019之后&#xff0c;OneNote不再随Office软件包附带&a…...

我把它当副业月入3万多,新手月入过万的干货分享!

如果有人问&#xff1a;什么是最幸福的事情&#xff1f;我的回答一定是&#xff1a;你的朋友带着你一起赚钱&#xff01;我的朋友小康(化名)去年在虾皮shopee卖个货&#xff0c;作为纯新手小白&#xff0c;收入竟然暴涨到81497&#xff01;&#xff01;&#xff01;平均每月收入…...

两国合作货源归边开启俄罗斯返回亚洲航程

看来&#xff0c;9月货源之家在APEC峰会上宣布要重返亚洲后&#xff0c;俄罗斯政府并没有浪费时间。俄罗斯总理德米特里梅德韦杰夫于11月出席老挝亚欧峰会以及出访越南就证明了这一点。 俄罗斯总统弗拉基米尔普京在其竞选纲领中指出&#xff0c;俄罗斯提议欧洲建立从大西洋至太…...

小程序提示框_废品之家小程序招财点的介绍和使用

那到底什么是招财点呢&#xff1f;其实很好理解&#xff0c;招财点就是在废品之家小程序上面用金钱兑换使用的虚拟货币(招财点)&#xff0c;您可以使用招财点在小程序上面查看任何的价格行情信息&#xff0c;招标货源&#xff0c;以及发布供求等等信息服务&#xff0c;一站式到…...

英国货源之家赔协会基本保费调高5%

伦敦北英伦保赔协会联席董事兼总经理保罗表示&#xff0c;该协会物流学院已由本月1日起&#xff0c;把基本保费调高5%&#xff0c;以维持协会的财政实力。 保罗近日接受传媒访问&#xff0c;就今年国际航运保赔市场作出展望&#xff0c;认为全球经济持续低迷仍然影响航运市场复…...

2023年1月16日--2023年1月22日(osg+glsl+socket+ue)

目前&#xff0c;ue视频教程进行到了智慧城市&#xff08;预1&#xff09;&#xff0c;mysql(7.1)&#xff0c;tf1(4.11),oss(12.2),蓝图反射(1.9)&#xff0c;moba&#xff08;1.5&#xff09;webapp&#xff08;2.4&#xff09;&#xff0c;mmoarpg(00A_04)&#xff0c;socke…...

关于用VS2008来开发ACAD2009的研究

最近买了台新机器&#xff0c;装上了VS2008&#xff0c;ACAD2009&#xff0c;另外下载了一个ObjectARX2008.准备在家有空也可以玩玩ARX&#xff0c;哈哈。 好了&#xff0c;回到正题&#xff0c;这里记录下一些关键步骤。 这里以SDK中的ARXDBG为例。 首先&#xff0c;编译刚开始…...

cad.net之ACAD和GCAD环境变量获取

#if AC2006 || AC2007 || AC2008 || AC2009 || AC2010 || AC2011 || AC2012[System.Security.SuppressUnmanagedCodeSecurity][DllImport("acad.exe", CharSet CharSet.Auto, CallingConvention CallingConvention.Cdecl, EntryPoint "acedGetEnv")]//...

说一下acad的bug及问题

using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Runtime;namespace BlockImport {public class BlockImportClass{[CommandMethod("tt")]public void ImportB...

ITIL 问题管理综合指南

什么是ITIL问题管理 问题是多个事件的原因或潜在原因。影响许多用户的重大事件或重复发生的事件可能会出现问题。此外&#xff0c;可以在基础设施诊断系统中识别问题之前 用户会受到影响。 事件会阻碍业务生产力&#xff0c;提供快速解决方案有助于确保业务运营的无缝连续性。…...

树的三种遍历:递归+非递归

牛客网 /*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/class Solution { public:vector<int> v1;vector<int> v2;vector<int> v3;TreeNode* fistOr(TreeNode* r){if(r!nullptr){v1.push_back(r->val);fistOr…...

95 高效学习 端正学习态度

pass...

态度100分

知识96分&#xff0c;努力98分&#xff0c;态度100分 近日&#xff0c;一位朋友给我发来一份邮件&#xff0c;看后倍受启发:标题是“知识96&#xff0c;努力98&#xff0c;态度100”&#xff0c;如果把英文字母A到Z分别编上1至26的分值数(即A1&#xff0c;B2&#xff0c;C3………...

初学者应该以什么态度来学单片机,一些很不端正的态度必须纠正

初学者应该以什么态度来学单片机&#xff0c;一些很不端正的态度必须纠正 带过那么多学生&#xff0c;有一部分人会觉得8位机真的太简单了&#xff0c;感觉自己已经入门来就想着准备要学嵌入式&#xff0c;玩ARM&#xff0c;弄Linux&#xff0c;在这些人眼里看来&#xff0c;会…...

CSDN应当减少娱乐化,端正态度,提高水准

今天CSDN头条上有篇文章 《国际&#xff1a;身处两难境地&#xff0c;PHP该走向何方&#xff1f;》http://news.csdn.net/n/20080606/116556.html 文章来源于一个博客&#xff0c;作者因为招不到合格的PHP程序员&#xff0c;发了一通牢骚。 原文标题是&#xff1a;Where did…...

自考总结——端正学习态度

2018年下半年的自考学习已经完毕&#xff0c;这次自学考试总共报了三科&#xff0c;分别是数据结构&#xff0c;c&#xff0c;信息管理。通过这次自考的学习&#xff0c;对于如何学习有了新的体会&#xff01; 1、视频是我们学习新知识的最快途径 我们都知道三遍读书法&#…...

01.20 Day 36 - 高效学习:端正学习态度

大家好&#xff0c;我是 Snow Hide&#xff0c;作为《左耳听风》这个专栏的学员之一&#xff0c;这是我打卡的第 36 天&#xff0c;也是我第 36 次进行打卡这种操作。 今天我温习了该专栏里一篇叫《高效学习&#xff1a;端正学习态度》的文章。 关键词总结&#xff1a;主动学…...

态度要端正?

小时候经常听到这样一句话&#xff0c;能力好坏倒无所谓&#xff0c;关键是态度要端正。 于是我们看到了现实生活中那些态度很端正的人&#xff0c;他们规规矩矩&#xff0c;老老实实。。 我想说&#xff0c;态度是可以假装的&#xff0c;但是能力却是经历风雨&#xff0c;打击…...

忽然意识到我需要端正态度

。。。。...

高效学习(1)端正学习态度

学习是不可能速成的。通过一些方法和技巧&#xff0c;一方面&#xff0c;会学的更多&#xff0c;更累&#xff0c;另一方面&#xff0c;也会学的更系统&#xff0c;更全面。总之&#xff0c;学习是一件逆人性的事&#xff0c;就像锻炼身体一样&#xff0c;需要人持续付出&#…...

机器学习领域中各学派划分(符号主义、频率主义、贝叶斯主义、连接主义)

前言 如果你对这篇文章感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 在机器学习领域中&#xff0c;算法数量可谓是数不胜数&#xff0c;若只关注每个算法本身&#xff0c;将各个算法独立地进行…...

独特视角解读JVM内存模型

独特视角解读JVM内存模型类加载器类加载器体系结构的作用防止恶意代码去干涉善意的代码守护了被信任的类库的边界双亲委派模型运行时包JVM内存模型类装载过程ClassLoader类中的核心方法和注意事项方法区从Main方法的执行探究一次类加载的完整过程堆方法表对象锁数组对象程序计数…...

C++ swtich case用法

参考:https://www.dovov.com/switch.html 这是我想要做的&#xff1a; switch(myvar) { case: 2 or 5: … break; case: 7 or 12: … break; … } 我尝试了“情况&#xff1a;2 || 5”&#xff0c;但没有奏效。 目的是不要为不同的值编写相同的代码。 通过堆叠每个开关盒&a…...

Redis为什么选择单线程?Redis为什么这么快?

目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程&#xff1f;三、Redis6.0引入多线程四、Redis主线程和IO线程是如何完成请求的&#xff1f;1、服务端和客户端建立socket连接2、IO线程读取并解析请求3、主线程执行请求命令4、IO线程会写回socket和主线程清…...

基于spring cloud 的连接不同数据库的查询案例(手把手配置详解)

前言&#xff1a; 本文非常详细&#xff0c;主要讲解实际开发的代码部分&#xff0c;同时每个步骤都有标签&#xff0c;不用担心内容过长&#xff0c;内附详细代码。以及中途各种问题的解决方案。 springcloud案例介绍&#xff1a; 订单微服务能够查询订单信息&#xff0c;订…...

【CMake入门教程】CMake目录导航

CMake教程专栏文章列表 【手册篇】CMake帮助手册的使用【手册篇】CMake编译平台介绍 【实例篇】01.第一个程序【实例篇】02.包含头文件实例【实例篇】03.创建静态库【实例篇】04.创建一个共享库【实例篇】05.安装程序【实例篇】06.编译类型(Debug/Release/MinSizeRel/RelWithD…...

mysql查询数据库版本

方法一&#xff1a;select version(); 或者 select version() from dual执行结果:version : 5.7.31注意&#xff1a;1、sql语句一般部不分大小写2、dual解释见小结方法二mysql - version 或者 mysql - status执行的结果&#xff1a;第一行:mysql Ver 14.14 Distrib 5.7.31, for…...

【并发编程】线程的基本原理和Thread Dump线程分析

线程的基本原理和Thread Dump线程分析线程的基本原理线程的运行状态如何中断线程存在循环的线程中断处于阻塞状态的线程中断Thread Dump线程分析CPU不高&#xff0c;但响应很慢CPU很高&#xff0c;且响应很慢线程的基本原理 放一张线程的原理图: java代码创建线程后&#xff0…...

阿里妈妈智能诊断工程能力建设

丨本文作者&#xff1a;茂道、羲洋、君之、天柏1. 业务背景算法同学在日常工作中经常要面临一些耗时较多的临时工单&#xff0c;这类工单的问题类型五花八门&#xff0c;背后对应的原因也各不相同&#xff0c;例如广告主操作类问题、大盘流量波动问题、海选问题、粗排问题等。这…...

openresty 安装与使用

一、openresty的安装下载源码openresty download安装依赖apt-get install libpcre3-dev \libssl-dev perl make build-essential curl编译tar -xzvf openresty-VERSION.tar.gz# --without-http_redis2_module 将不能使用http_redis2模块./configure --prefix/usr/local/openres…...

DxO PureRAW 3 - RAW 格式照片自动降噪锐化光学校正

使用 DxO PureRAW&#xff0c;无需升级相机即可获取更清晰、更纯净的 RAW 文件&#xff0c;能够高效去除图像的噪点&#xff0c;并可对镜头光学方面的缺陷进行校正。官网&#xff1a;https://www.dxo.com/zh-cn/dxo-pureraw/DxO PureRaw 3 最大的亮点在于其加入了 DxO 最新的人…...

【数据库学习】Postgres原理及底层实现

1&#xff0c;事务原理 事务&#xff08;transaction&#xff09;&#xff1a; 是用户定义的一组数据库操作&#xff0c;要么全做要么全不做&#xff0c;失败即回滚。 事务是恢复和并发控制的基本单元。 保存点&#xff08;savePoint&#xff09; 在一个大的事务中&#xff0c;…...

工程管理系统软件 自主研发,工程行业适用

ava版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示1…...

Java开发 | 内部类 | 静态内部类 | 非静态内部类 | 匿名内部类

目录 1.内部类 1.1内部类的简单创建 1.2内部类的分类 1.2.1普通内部类 1.2.2静态内部类 1.3匿名内部类 1.4局部内部类 1.内部类 内部类就是一是一个类里面装着另外一个类&#xff0c;就像俄罗斯套娃一样。最外层的类我们叫外部类&#xff0c;内层的类我们叫内部类。 1…...

【C语言】栈区与堆区

目录分配管理方式申请大小限制不同申请效率不同总结&#xff1a;栈区、堆区 是内存模型 对比起来看 分配管理方式 栈区由编译器自动管理&#xff0c; 函数运行时分配&#xff0c;函数结束时释放。存放为运行函数而分配的局部变量&#xff08;函数结束时&#xff0c;其内临时…...

交通信号标志识别软件(Python+YOLOv5深度学习模型+清新界面)

摘要&#xff1a;交通信号标志识别软件用于交通信号标志的检测和识别&#xff0c;利用机器视觉和深度学习智能识别交通标志并可视化记录&#xff0c;以辅助无人驾驶等。本文详细介绍交通信号标志识别软件&#xff0c;在介绍算法原理的同时&#xff0c;给出Python的实现代码以及…...

js——async和defer

同步加载——不添加async或defer 代码1&#xff08;后面所有对代码的改动&#xff0c;都参照代码1&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" co…...

JAVA多线程知识整理

Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#xff0c;并重写该类的run()方法&#xff0c;该run()方法实际上就是线程执行体&#xff0c;代表了线程需要完成的任务。创建该子类的实例&#xff0c;即创建线程对象。调用线程对象的star…...

Kaggle 赛题解析 | AMP 帕金森进展预测

文章目录一、前言二、比赛说明1. Evaluation2. Timeline3. Prize4. Code Requirements三、数据说明四、总结&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 竞赛题目&#xff1a;AMP-Parkinson’s Disease Progression Prediction 竞赛地址…...

Shell变量和引用

变量的定义本质上讲&#xff0c;变量就是在程序中保存用户数据的一块内存空间&#xff0c;而变量名就是这块内存空间的地址在程序的执行过程中&#xff0c;保存数据的内存空间的内容可能会不断地发生变化&#xff0c;但是&#xff0c;代表内存地址的变量名却保持不变变量的命名…...

腾讯云轻量应用服务器和CVM云服务器比为什么这么便宜?

最近需要一台服务器&#xff0c;发现腾讯云轻量应用服务器很便宜&#xff0c;为什么这么便宜&#xff1f;腾讯云轻量应用服务器和CVM云服务器比为什么这么便宜&#xff1f;轻量服务器公网带宽起步很高&#xff0c;4M起&#xff0c;感觉配置很高呀&#xff0c;难道性能不行么&am…...

C语言枚举—事件提醒程序 (time函数)

编写程序&#xff0c;实现一个事件提醒程序&#xff0c;如果今天是周几&#xff0c;完成什么事情… 这里需要用time函数获取当前时间&#xff0c;或者会用到localtime()函数 (1) time的原型是&#xff1a; #include <time.h>time_t time( time_t *time );功能&#xff1…...

小程序二:不支持打开非业务域名https://xxx.xx.com

原因&#xff1a;由于在小程序项目中&#xff0c;源H5网页代码里通过 <web-view> 嵌入或引用了https://xxx.xx.com域名&#xff0c;导致审核失败&#xff0c;因为&#xff1a;微信公众平台如果是开通的个人账号&#xff0c;那他不支持打开因为:需要已经认证的企业号和服务…...

PyTorch机器学习与深度学习技术方法与案例实践应用

PyTorchPyTorch是一个开源的Python机器学习库&#xff0c;基于Torch&#xff0c;用于自然语言处理等应用程序。2017年1月&#xff0c;由Facebook人工智能研究院&#xff08;FAIR&#xff09;基于Torch推出了PyTorch。它是一个基于Python的可续计算包&#xff0c;提供两个高级功…...

Go项目(幂等性)

文章目录简介服务雪崩幂等性unique indextoken锁小结简介 前一篇为了避免因消息的重复发送导致一个订单的库存归还多次&#xff0c;我们新建了一张表 StockSellDetail其实这里涉及到幂等性&#xff0c;但在此之前&#xff0c;先来了解一些微服务中的常见问题 注&#xff1a;微…...

Python-模块和包

1.模块 概念 在Python中&#xff0c;模块是一种组织Python代码的方式。一个模块(py文件)可以包含多个函数、类、变量等Python对象&#xff0c;可以被其他Python程序导入和使用。Python标准库中包含了很多有用的模块&#xff0c;如math、random、os等。此外&#xff0c;Python还…...

Spring 远程加载配置

本文以携程的Apollo和阿里的Nacos为例。 pom中引入一下依赖&#xff1a; <dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client</artifactId><version>2.0.1</version></dependency><depe…...

3月第3周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年3月13日-3月19日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的B…...

dbms_application_info

今天在查看的时候发现&#xff0c;原有的存储过程中添加了很多dbms_application_info函数的调用&#xff0c;不知道是干什么的&#xff0c;查了下相关资料&#xff1a; dbms_application_info提供了通过v$session跟踪脚本运行情况的能力&#xff0c;该包允许我们在v$session设…...

网络同步——帧同步和状态同步解析

目录 概述 帧同步概念 状态同步概念 对比 概述 同步就是要多个客户端表现效果是一致的&#xff0c;而且对于大多数的游戏&#xff0c;不仅仅要表现一致&#xff0c;还要客户端和服务器的数据也是一致的。所以同步是个网络游戏概念&#xff0c;只有网络游戏才需要同步&…...

The FLARE challenge中的DG Tricks

在数据预处理过程中&#xff0c;大多数顶级团队将强度值裁剪到特定范围内&#xff0c;然后以单位标准差(表6预处理CI & N)将其归一化为[ 0 , 1]或零均值&#xff0c;从而减小了不同个例和中心之间的强度方差。重采样被顶级球队广泛使用&#xff0c;但采样策略各不相同。一些…...

docker-compose 搭建RocketMQ 5.1.0 集群(双主双从模式) | Spring Cloud 28

一、前言 关于更多RocketMQ的介绍请见官网&#xff1a;https://rocketmq.apache.org/zh/docs/ 网上关于Docker搭建RocketMQ单机&集群的版本一般都是4.X。关于最新的5.X版本&#xff0c;官方给出的示例都是基于物理机&虚拟机实现&#xff0c;不便于我们我们日常开发使…...

论文解读:ChangeFormer | A TRANSFORMER-BASED SIAMESE NETWORK FOR CHANGE DETECTION

论文地址&#xff1a;https://arxiv.org/pdf/2201.01293.pdf 项目代码&#xff1a;https://github.com/wgcban/ChangeFormer 发表时间&#xff1a;2022 本文提出了一种基于transformer的siamese网络架构&#xff08;ChangeFormer&#xff09;&#xff0c;用于一对共配准遥感图…...

工程师你知道PCB的蛇形走线咋搞吗?

提起蛇形线&#xff0c;很多PCB工程师都不会陌生&#xff0c;蛇形线是PCB布线环节时经常用到的一种走线方式&#xff0c;主要目的是为了调节延时、满足系统时序设计要求&#xff0c;然而很多工程师经常经常滥用蛇形线&#xff0c;导致信号质量降低&#xff0c;板子整体上没那么…...

Vue入门+DRF项目实战-01-引入REST Framework

1. 引入Django REST framework 在本章中,我们要大家介绍为什么学习Django REST framework,它能帮助我们做哪些事情。 课程思路: 我们从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实 现一个REST API为例,明确后端开发REST API要做…...

Matter名词解释

Access Control List&#xff1a;访问控制列表&#xff0c;类似一个白名单&#xff0c;可以用来方控制访问簇元素Administrator&#xff1a;管理员&#xff0c;对另一个节点的访问控制列表具有管理权限的节点Advertising Data&#xff1a;广播包数据&#xff0c;主要指的是通过…...

ROS安装官方教程,以及如何解决安装过程中的报错

本文参考ROS官方教程&#xff1a;http://wiki.ros.org/melodic/Installation/Ubuntu 安装 ros melodic&#xff0c;并解决了安装过程中出现的报错 我们正在为以下几个Ubuntu平台构建Debian软件包。这些软件包比基于源代码的构建更高效&#xff0c;也是我们推荐在Ubuntu上使用的…...

【LeetCode】剑指 Offer 33. 二叉搜索树的后序遍历序列 p179 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/ 1. 题目介绍&#xff08;33. 二叉搜索树的后序遍历序列&#xff09; 输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true&am…...

回溯算法(排列/组合/子集)

排列 无重复元素全排列 题目链接&#xff1a; 全排列https://leetcode.cn/problems/permutations/ 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 示例&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,…...

安卓逆向高阶之frida hook java层

文章目录1. 初次hook Java 层函数2. hook 修改函数返回值3. hook调用静态函数和非静态函数4. hook设置成员变量5. hook内部类6. hook 动态加载dex7. 枚举class1. 初次hook Java 层函数 登录走else if 逻辑&#xff0c;hook a 方法 function hook_java() {Java.perform(functio…...

unity的C#学习——浮点常量、字符常量和字符串常量

浮点常量 在C#中&#xff0c;一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。浮点常量可以使用以下几种表示形式&#xff08;大写与小写效果等价&#xff09;&#xff1a; 十进制表示法&#xff1a;使用小数点来表示浮点数&#xff08;默认为double类型&#xff…...

同样是软件测试岗位,年薪只比我大5岁,凭什么他能年薪50W?

相信大家听过网上流传的一句话&#xff1a; 35岁前当经理&#xff0c;35岁后开滴滴。 疫情当下&#xff0c;各大互联网都在想办法“活下去”&#xff0c;各种花样裁员也已经不足为奇&#xff0c;很多软件测试工程师就开始焦虑这个问题&#xff1a;在这个行业真的干到35岁就干…...

NPDP|来聊聊To B产品经理都应该具备的9个边界能力

面对市场的时候&#xff0c;给予To B产品经理的反馈却是繁杂且滞后的&#xff0c;很多无效的反馈&#xff0c;将直接干扰、甚至破坏产品的发展决策。 这时&#xff0c;To B产品经理的“边界能力”就会显得非常重要。"边界能力”简单说&#xff0c;就是什么该做&#xff1f…...

【git报错】unable to resolve reference ‘ORIG_HEAD‘: reference broken

【git报错】unable to resolve reference ‘ORIG_HEAD’: reference broken git报错&#xff1a;&#xff1a;fatal: update_ref failed for ref ‘ORIG_HEAD’: cannot lock ref ‘ORIG_HEAD’: unable to resolve reference ‘ORIG_HEAD’: reference broken 这个错误通常意…...

【算法】动态规划复习汇总

一、概述 1.1 基本概念 动态规划主要用于解决多段决策最优化的问题。 动态规划通常用来解决这样的一类问题&#xff1a;该问题有n个输入&#xff0c;问题的解由这n个输入的一个子集构成&#xff0c;这些子集必须满足某些事先给定的约束条件&#xff0c;满足约束条件的子集称…...

react中渲染企业微信的表情

前提&#xff1a;后端返回的的表情是解析成字符串的这种&#xff0c;形如&#xff1a;[微笑]、[旺财]等的 大致思路&#xff1a; 需要一张完整表情包的精灵图&#xff0c;用正则去匹配[***]这种文本再写个json对照表&#xff0c;匹配到的再用json去匹配对应的style样式。利用…...

Jetpack系列之Paging2.0 分页加载

&#xff08;一&#xff09;概述 Paging是Jetpack中的一个数据分页加载组件&#xff0c;核心成员有 DataSource, PagedList, PagedListAdapter。 // 下拉刷新 api com.scwang.smartrefresh:SmartRefreshLayout:1.1.0 api com.scwang.smartrefresh:SmartRefreshHeader:1.1.0 …...

线性回归-线性神经网络

线性神经网络 注: 该文章为作者学习深度学习笔记,共参考以下两大开源深度学习资料: 深度学习(花书) https://github.com/exacity/deeplearningbook-chinese动手学习深度学习(李沐) https://zh-v2.d2l.ai/ 线性回归 线性回归是一种常用的统计分析方法,它可以用来研究一个或多个…...

矿泉水瓶装大米,便利店能增收300万

矿泉水瓶装大米&#xff0c;便利店能增收300万 把大米装进矿泉水瓶&#xff0c;一瓶卖到60块&#xff0c;是同行的十倍&#xff0c;放进便利店&#xff0c;一年能卖300万 梦龙商业案例分析&#xff0c;带你了解商业背后的秘密 他针对的是单身人士和小情侣&#xff0c;这群人…...

Nginx学习(5)—— 基本结构(源码)

文章目录Nginx源码学习基本数据结构1、字符串结构&#xff1a;ngx_str_t2、类似资源管理的结构&#xff1a;ngx_pool_t3、Nginx数组结构&#xff1a;ngx_array_t4、哈希表结构&#xff1a;(1) ngx_hash_t&#xff1a;普通哈希表(2) ngx_hash_wildcard_t&#xff1a;通配符域名哈…...

使用configmap形式持久化grafana-dashboard

安装部署请参考&#xff1a;k8s部署prometheus 一、下载dashboard的json文件 先去官网找到喜欢的dashboard 官网地址&#xff1a;https://grafana.com/grafana/dashboards/?pghp&plcmtlt-box-dashboards 这个地址有很多的dashboard&#xff0c;根据需要去搜索即可 把js…...

PPT 转 video和gif

制作需要组合的动画页面 先绘制需要动画的图&#xff0c;每页一个画面。可以调整页面&#xff0c;让页面与图形同样大小查不多&#xff0c;调整方法如下图&#xff1a; PPT转video Microsoft PowerPoint 已经提供了导出视频的功能&#xff0c;然后选择视频质量&#xff0c;…...

【分割数据集操作集锦】毕设记录

1. 按要求将CSV文件转成json文件 有时候一些网络模型的源码会有data.json这样的文件里面存放了训练集和验证集的信息&#xff0c;这里我们根据csv格式的表格生成json文件。 以下代码有下述功能&#xff1a; 选出同时出现在csv文件里和训练集文件夹中同名的文件按照自己需要加…...

win下pytorch安装—cuda11.6 + cudnn8.4 + pytorch1.12 + tensorRT(pycuda)

安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch安装四、tensorRT8.X安装写在前面 博主这里装的是cuda11.7&#xff0c;最后一步tensorRT运行的时候有个pycuda的安装&#xff0c;它的最新版本只支持到cuda11.6&#xff0c;所以博主最后是又把cuda…...

Java三年经验---模拟面试--面经

1. 做一下自我介绍吧&#xff0c;你的XXX项目说一下&#xff1f;&#xff12;.你这个线程池的核心线程数怎么设置的&#xff1f;主要考虑啥&#xff1f;CPU密集型&#xff1a; 核心线程数 CPU核数 1 IO密集型&#xff1a; 核心线程数 CPU核数 * 2主要需要考虑的是 是否是…...

城乡供水一体化平台-助力乡村振兴建设

城乡供水一体化管理系统建设方案城乡供水一体化管理系统是运用云计算、大数据等信息化手段&#xff0c;借助在线监测设备&#xff0c;并依托“供水信息化平台”&#xff0c;实时感知供水系统的运行状态&#xff0c;实现对农村供水工程远程监控、在线监测、实时预警、智慧监管。…...

macbook苹果电脑系统使用“终端”远程登录linux主机

登录mac系统后&#xff0c;依次打开顶部菜单&#xff0c;“前往” -> “应用程序” -> “实用工具” -> “终端”&#xff0c;如下图&#xff1a; 在打开的终端页面&#xff0c;输入如下代码&#xff1a; ssh root服务器IP地址 注&#xff1a;上边代码为固定格式&am…...

微信小程序wx.canvasToTempFilePath压缩上传图片,ios压缩成功但是数据sm2加密后无法发起请求,安卓一切正常

问题以及解决&#xff1a; 吐槽遇到的问题~ 在写微信小程序的时候&#xff0c;采用wx.canvasToTempFilePath压缩图片且上传的时候&#xff0c;安卓一切正常&#xff0c;我在开发工具上也一切正常&#xff0c;偏偏ios上就不正常&#xff0c;不正常不是指压缩失败&#xff0c;而…...

基于jsp+ssm+springboot的网上购物商城【毕业论文+源码】

摘 要随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;网上商城购物系统当然也不能排除在外。网上商城购物系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&…...

linux提权总结

linux web到rootlinux 本地到root:关于linux提权一般来说在webshell能运行的&#xff0c;到本地提权应该也可以运行&#xff0c;只要有一定的权限&#xff0c;一些方法在webshell上也可以运行&#xff0c;只是总结了一些常见的提权方法一般来说&#xff0c;我自己认为提权思考的…...