人类发展史,就是不断挖坑、填坑的过程。
语言发展史也是如此!
任何一门设计合理的语言,给你的限制或提供的什么特性,都不是没有代价的。

C的指针

指针:pointer
指针的思想起源于汇编。指针思想是编程思想历史上的重大飞跃。
每一个编程语言都使用指针。C语言将指针完全暴露给了用户。潘多拉之盒。

使用指针的必要性:资源管理,即地址管理。

思想层:将地址包了一层。
语法层:T *p; *p;
编译器:包含一个intptr_t类型成员的结构体。
汇编层:寄存器间接寻址MOV。

image

C语言中只有一种参数传递方式:值传递。
void f(int p)
void f(int *p)

利用指针交换两个数字

#include <stdio.h>
void Swap(int *p1,int *p2){int tmp = *p1;*p1 = *p2;*p2 = tmp;
}
int main(){int a = 10;int b = 20;Swap(&a,&b);printf("%d %d\n",a,b);return 0;
}

指针的级数
Int *p; int **p; int ***p;
理论上无限级,无限套娃。实际上受编译器限制。

指针是一扇门,推开门,后面是整个世界。

C++的引用

引用:reference
已存在变量的别名。

使用引用的必要性:资源使用

思想层:受限制的指针。
语法层:T a; T &p=a;
编译器:给你做了保证,一定是经过初始化的指针
汇编层:和指针一样。

在汇编层,指针和引用是完全一样的。
引用是一个语法糖,T a; T &p=a;等价于 T *const p = &a

    int x=0;
00676664  mov         dword ptr [x],0  int &a = x;
0067666B  lea         eax,[x]  
0067666E  mov         dword ptr [a],eax  a = 1;
00676671  mov         eax,dword ptr [a]  
00676674  mov         dword ptr [eax],1  int *p = &x;
0067667A  lea         eax,[x]  
0067667D  mov         dword ptr [p],eax  *p = 2;
00676680  mov         eax,dword ptr [p]  
00676683  mov         dword ptr [eax],2  int *const p2 = &x;
00676689  lea         eax,[x]  
0067668C  mov         dword ptr [p2],eax  *p2 = 3;
0067668F  mov         eax,dword ptr [p2]  
00676692  mov         dword ptr [eax],3 

引用的情况:

int a = 1;
const int b = 1;
int &ref1 = a;
int &ref2 = 1;//ERROR
const int &ref3 = b;
const int &ref4 = 1;

Q:唯独int &ref2 = 1;//ERROR?
A:C++的早期这种语法是被允许的,但是在函数调用传参数时,会给程序员带来误解,于是后面就禁止了这种语法。

引用规则的特例:const引用

void f(int &i){}
void f(const int &i){}int main(){int i = 1;f(i);//call f(int &i)f(2);//call f(const int &i)return 0;
}
void f(int &i){}
//void f(const int &i){}int main(){int i = 1;f(i);//call f(int &i)f(2);//ERRORreturn 0;
}
//void f(int &i){}
void f(const int &i){}int main(){int i = 1;f(i);//call f(const int &i)f(2);//call f(const int &i)return 0;
}

C++语言中就有了新的参数传递方式:引用传递 void f(T &p) 。实质也是传值。

自定义类型最好用引用传递,可以避免不必要的构造函数和析构函数的调用。
内置类型建议用值传递,自定义类型建议用引用传递,内置类型,值传递会比按引用传递更高效。

解释见:这里

利用引用交换两个数字

#include <iostream>
#include <stdlib.h>
using namespace std;
void swap(int &a, int &b){int tmp = a;a = b;b = tmp;
}
int main(){int a = 3;int b = 4;swap(a, b);cout << "a=" << a<<" " << "b=" << b << endl;return 0;
}

引用的级数
只能一级,引用的对象必须是一个已存在的地址。引用变量本身的地址,外界不能访问。
References are not objects; they do not necessarily occupy storage,
Because references are not objects, there are no arrays of references, no pointers to references, and no references to references。
int& a[3]; // ERROR
int&* p; // ERROR
int& &r; // ERROR

引用和指针叠加
int a; int *p = &a; int *&r = p; //OK

使用引用的场景:

  • 给函数传递可变参数
  • 给函数传递大型对象
  • 引用函数返回值;

Q:引用能实现的基本上指针都可以实现,那为什么C++还需要引入引用呢?
A:最初主要是为了支持运算符重载。
c = a + b是可以接受的写法,而c = &a + &b 就不是很方便而且有歧义了。
写法上的方便是要第一考虑的。

Q:C++引入了引用,那为什么C++不和Java一样让指针对使用者不可见呢?
A:历史原因。为了兼容C语言。程序员是自由的。

Q:C++为什么选择&作为引用的标识符?
A:需要用一个符号告诉编译器,传的是引用。&在C语言中是取地址的作用,于是就选择了它。

Q:this为什么是指针类型,而不是引用类型?
A:历史原因。this诞生早于引用。某种意义上来讲,this应该被设计为引用类型。

Q:Why is “this” not a reference?
A:Because “this” was introduced into C++ (really into C with Classes) before references were added. Also, I chose “this” to follow Simula usage, rather than the (later) Smalltalk use of “self”.

Q:拷贝构造函数参数一定是引用,不然编译通不过,为什么?
A:因为在入参的过程中,如果不是引用,会首先进行一次值拷贝;而要实现的就是拷贝构造,就会造成不断的递归最后爆炸。

Q:引用是受限制的指针,哪里受限制了?
A:引用变量本身的地址外界不可获得,当然编译器是可以的。

Q:引用变量是否占有内存空间?
A:引用可以不占用,也可以占有。语法规定对引用变量的操作都是对被引用对象的操作。

struct S {int a;int &b;
};
int x = 123;
S s(123,x);

sizeof(S)=?//32位环境等于8

non-const引用的汇编视角
image

const引用的汇编视角
image

说明:const引用变量绑定没有地址的对象时,会生成一个临时变量/匿名对象来中转。

全局定义
const int& a = 123; 123的匿名对象在堆上局部定义
void f{const int& a = 456; 456的匿名对象在栈上
}

往下走用*,往上走用&。

C++的第一个坑:兼容了C语言的指针。

C++的构造

3种构造语义:

  1. 构造函数constructor
  2. 拷贝构造copy constructor
  3. 拷贝赋值运算符copy assignment operator

构造函数S()
出厂设置
拷贝构造S(const S &other)
把A的数据复制给B。B(A);
拷贝赋值运算符S& operator=(const S &other)
先把B的资源释放,再把A的数据复制给B。B=A;

变量按内存分为两种:

  1. 不包含指针。trivial type。篮球。
  2. 包含指针。handle type。风筝和风筝线。

拷贝的分类

  • 浅拷贝
    引用语意(reference semantics)
    缺陷:若写法不对,可能会发生double free。
    Q:为什么编译器所有的默认的行为都是浅拷贝?
    A:深拷贝不一定能实现。指向的对象可能是多态的,也可能是数组,也可能有循环引用。所以只能留待成员变量的类来决定怎样实现复制。
    有时候为了防止默认拷贝发生,可以声明一个私有的拷贝构造函数。这种做法比较常见,但不可取。
  • 深拷贝
    值语意(value semantics)
    缺陷:出现了额外的构造和析构,性能损失。
    深拷贝和浅拷贝的本质区别就是两个对象的行为属性是否是独立变化的。

C++的第二个坑:拷贝构造函数

思考:
T为handle type,T A(…),T B(A)。A赋值给B。如果A不再使用了,能不能让B直接接管A的所有资源呢?(移动语义move semantics)
在不破坏现有语法规则情况下,你会如何设计?

  1. C++03现有语法不支持移动语义。需要新增移动语义。
  2. 如何标识对象的资源是可以被移动的呢?
  3. 这种机制必须以一种最低开销的方式实现,并且对所有的类都有效。
  4. 设计在编译层,与运行层面无关。

C++的设计者们注意到,大多数情况下,右值所包含的对象都是可以安全的被移动的。

左值与右值

左值和右值的概念
CPL语言引入了表达式值的类型value categories这种概念:左值和右值,left or right of assignment。
C语言沿用了类似的分类:左值和其他,locator value and other
C++98 沿用了C语言的分类,但是略微调整。引入了新定义:右值rvalue = non-lvalue。
C++11 新增了xvalue(an “eXpiring” value),并调整了之前左值和右值的定义。
image

(i)has identity: it’s possible to determine whether the expression refers to the same entity as another expression, such as by comparing addresses of the objects or the functions they identify (obtained directly or indirectly);
(m)can be moved from: move constructor, move assignment operator, or another function overload that implements move semantics can bind to the expression.
准则 1:能不能分辨两个表达式指的是同一个物体。比如我们可以通过比较地址。
准则 2:能不能使用移动语义。比如看看能不能用调用移动构造函数。

  • i&~m:lvalue 左值
  • i&m:xvalue 将亡值
  • ~i&m:prvalue 纯右值
  • i:glvalue泛左值
  • m:rvalue右值

C++17
分类和 C++11 是一样的,但是语义上更加明确了。

  • glvalues:有自己地址的长寿对象
  • prvalues:为了初始化而用的短命对象
  • xvalue:资源已经不需要了,而且可以再利用的长寿对象

为了优化这样一个情况:T(T(T(x)))==>T(x),将prvalues的定义略微调整了下。
具体可以参考Copy elision (复制消除)

左值引用和右值引用

T &Lref; // 左值引用,就是传统的c++引用
T &&Rref; // 右值引用
Q:为什么使用&&做为右值引用的标识符?
A:惯性设计。标准委员玩标点符号是真的可以。

规则:

  • non-const左值引用只能绑定non-const左值
  • non-const右值引用只能绑定non-const右值
  • const左值引用,可以绑定任意。
  • const右值引用,可以绑定non-const右值和const右值。注:这个使用的场景很少很少。

如何判定

namespace test {template <typename T> struct is_lvalue_reference {const static bool value = false;};template <typename T> struct is_lvalue_reference<T &> {const static bool value = true;};template <typename T> struct is_rvalue_reference {const static bool value = false;};template <typename T> struct is_rvalue_reference<T &&> {const static bool value = true;};template <typename T> struct is_lvalue {const static bool value = is_lvalue_reference<T>::value && (!is_rvalue_reference<T>::value);};template <typename T> struct is_xvalue {const static bool value = (!is_lvalue_reference<T>::value) && is_rvalue_reference<T>::value;};template <typename T> struct is_prvalue {const static bool value = (!is_lvalue_reference<T>::value && !is_rvalue_reference<T>::value);};template <typename T> struct is_rvalue {const static bool value = (is_xvalue<T>::value || is_prvalue<T>::value);};template <typename T> struct is_glvalue {const static bool value = (is_xvalue<T>::value || is_lvalue<T>::value);};
}
struct Foo {};
Foo funRetFoo();
Foo &funRetFooLRef();
Foo &&funRetFooRRef();TEST(TypeTraits, isRvalue) {//base typeEXPECT_FALSE(::test::is_lvalue_reference<int>::value);EXPECT_FALSE(::test::is_rvalue_reference<int>::value);EXPECT_FALSE(::test::is_lvalue<int>::value);EXPECT_FALSE(::test::is_xvalue<int>::value);EXPECT_TRUE(::test::is_prvalue<int>::value);EXPECT_FALSE(::test::is_glvalue<int>::value);EXPECT_TRUE(::test::is_rvalue<int>::value);// return objEXPECT_FALSE(::test::is_lvalue_reference<decltype(funRetFoo())>::value);EXPECT_FALSE(::test::is_rvalue_reference<decltype(funRetFoo())>::value);EXPECT_FALSE(::test::is_lvalue<decltype(funRetFoo())>::value);EXPECT_FALSE(::test::is_xvalue<decltype(funRetFoo())>::value);EXPECT_TRUE(::test::is_prvalue<decltype(funRetFoo())>::value);EXPECT_FALSE(::test::is_glvalue<decltype(funRetFoo())>::value);EXPECT_TRUE(::test::is_rvalue<decltype(funRetFoo())>::value);// return ref objEXPECT_TRUE(::test::is_lvalue_reference<decltype(funRetFooLRef())>::value);EXPECT_FALSE(::test::is_rvalue_reference<decltype(funRetFooLRef())>::value);EXPECT_TRUE(::test::is_lvalue<decltype(funRetFooLRef())>::value);EXPECT_FALSE(::test::is_xvalue<decltype(funRetFooLRef())>::value);EXPECT_FALSE(::test::is_prvalue<decltype(funRetFooLRef())>::value);EXPECT_TRUE(::test::is_glvalue<decltype(funRetFooLRef())>::value);EXPECT_FALSE(::test::is_rvalue<decltype(funRetFooLRef())>::value);// return rref objEXPECT_FALSE(::test::is_lvalue_reference<decltype(funRetFooRRef())>::value);EXPECT_TRUE(::test::is_rvalue_reference<decltype(funRetFooRRef())>::value);EXPECT_FALSE(::test::is_lvalue<decltype(funRetFooRRef())>::value);EXPECT_TRUE(::test::is_xvalue<decltype(funRetFooRRef())>::value);EXPECT_FALSE(::test::is_prvalue<decltype(funRetFooRRef())>::value);EXPECT_TRUE(::test::is_glvalue<decltype(funRetFooRRef())>::value);EXPECT_TRUE(::test::is_rvalue<decltype(funRetFooRRef())>::value);int lvalue;// 模拟=号左边EXPECT_TRUE(::test::is_lvalue_reference<decltype(*&lvalue)>::value);EXPECT_FALSE(::test::is_rvalue_reference<decltype(*&lvalue)>::value);EXPECT_TRUE(::test::is_lvalue<decltype(*&lvalue)>::value);EXPECT_FALSE(::test::is_xvalue<decltype(*&lvalue)>::value);EXPECT_FALSE(::test::is_prvalue<decltype(*&lvalue)>::value);EXPECT_TRUE(::test::is_glvalue<decltype(*&lvalue)>::value);EXPECT_FALSE(::test::is_rvalue<decltype(*&lvalue)>::value);//operator++()EXPECT_FALSE(::test::is_lvalue_reference<decltype(lvalue++)>::value);EXPECT_FALSE(::test::is_rvalue_reference<decltype(lvalue++)>::value);EXPECT_FALSE(::test::is_lvalue<decltype(lvalue++)>::value);EXPECT_FALSE(::test::is_xvalue<decltype(lvalue++)>::value);EXPECT_TRUE(::test::is_prvalue<decltype(lvalue++)>::value);EXPECT_FALSE(::test::is_glvalue<decltype(lvalue++)>::value);EXPECT_TRUE(::test::is_rvalue<decltype(lvalue++)>::value);//operator++(int)EXPECT_TRUE(::test::is_lvalue_reference<decltype(++lvalue)>::value);EXPECT_FALSE(::test::is_rvalue_reference<decltype(++lvalue)>::value);EXPECT_TRUE(::test::is_lvalue<decltype(++lvalue)>::value);EXPECT_FALSE(::test::is_xvalue<decltype(++lvalue)>::value);EXPECT_FALSE(::test::is_prvalue<decltype(++lvalue)>::value);EXPECT_TRUE(::test::is_glvalue<decltype(++lvalue)>::value);EXPECT_FALSE(::test::is_rvalue<decltype(++lvalue)>::value);
}

记住一点:左值引用直接作用于lvalue,右值引用直接作用于xvalue。
Q:谁直接作用于prvalue呢?
A:只能间接作用:右值引用、const左值引用。生成一个指针类型的匿名变量做中转。

移动语义

如何让自定义对象支持移动语义?

  • 移动构造move constructorS(S &&other) noexcept
  • 移动赋值运算符move assignment operator S& operator=(S &&other) noexcept

note:需要加noexpect。
目的:告诉编译器:这个移动函数不会抛出异常,可以放心地调用。否则,编译器会调用拷贝函数。

C++11后,STL都支持了移动语义。移动语义对基本类型没有性能提升的作用。

Q:如何将一个变量转为右值引用?
A:static_cast<T &&>(t)
写法一:

string s = "abcd";
string s1(static_cast<string &&>(s));
s1(s);
string s2 = static_cast<string &&>(s);

这种写法麻烦。如何简写?模板。

写法二:

//VS
template <class _Ty>
struct remove_reference<_Ty&&> {using type                 = _Ty;using _Const_thru_ref_type = const _Ty&&;
};template <class _Ty>
using remove_reference_t = typename remove_reference<_Ty>::type;// FUNCTION TEMPLATE move
template <class _Ty>
_NODISCARD constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { // forward _Arg as movablereturn static_cast<remove_reference_t<_Ty>&&>(_Arg);
}
string s = "abcd";
string s1(move(s));
string s2 = move(s);

由此诞生了std::move。在<utility>头文件中。

利用移动交换两个数字

void swap(T &a1, T &a2){T tmp(std::move(a1)); // a1 转为右值,移动构造函数调用,低成本a1 = std::move(a2);   // a2 转为右值,移动赋值函数调用,低成本a2 = std::move(tmp);  // tmp 转为右值移动给a2
}

Q:move的参数是&&,为什么传入左值也是可以的?
A:万能引用

A=B B的资源给A了,A的资源自己处理掉的。如果B在外面继续使用,则是未定义行为。

万能引用

universal reference
概念:使用T&&类型的形参既能绑定右值,又能绑定左值。
T&&在代码里并不总是右值引用。

万能引用一定涉及到类型推导的,没有类型推导就是右值引用。
具体规则:这篇文章
使用场景有2个:

template<typename T>
void f(T&& param); // param is a universal referenceauto&& var2 = var1; // var2 is a universal reference

引用折叠规则

reference-collapsing rules
引入该规则的原因:C++中禁止reference to reference。为了通过编译器检查。
当左值引用和右值引用同时出现在类型定义中时,需要如何处理?
约定:只有&& && = &&,沾上一个&就变左值引用了。

T && && ==>T &&
T && &  ==>T &
T &  && ==>T &
T &  &  ==>T &

Q:为什么要这么约定?
A:左值引用有副作用

函数内外参数类型不匹配

template<typename T>
void f(T&& a){g(a);  // 这里的 a 是什么类型?
}// 版本 1
template<typename T>
void g(T &){ cout << "T&" << endl; }// 版本 2
template<typename T>
void g(T &&){ cout << "T&&" << endl; }int num;
f(0);
f(num);输出:
T&
T&

a是变量,是左值,所以输出T&。
但是0是数字,是右值,为什么进去后就成了左值?能不能一致?
Q:一定要一致么?
A:在某些场景不一致会有问题。需要提供一种保证前后语义一致的机制。

Q:怎么才能实现一致呢?
A:还是static_cast。

template<typename T>
void f(T&& a){g(static_cast<T &&>(a));  //g(static_cast<T>(a));  这样写也可以
}// 版本 1
template<typename T>
void g(T &){ cout << "T&" << endl; }// 版本 2
template<typename T>
void g(T &&){ cout << "T&&" << endl; }int a;
f(0);
f(a);输出:
T&&
T&

这种写法麻烦。如何简写?模板。

Forward

转发:某些函数需要将其中一个或多个实参连同类型不变地转发给其他函数

//VS
// FUNCTION TEMPLATE forward
template <class _Ty>
_NODISCARD constexpr _Ty&& forward(remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvaluereturn static_cast<_Ty&&>(_Arg);
}template <class _Ty>
_NODISCARD constexpr _Ty&& forward(remove_reference_t<_Ty>&& _Arg) noexcept { // forward an rvalue as an rvaluestatic_assert(!is_lvalue_reference_v<_Ty>, "bad forward call");return static_cast<_Ty&&>(_Arg);
}

就可以简写:

template<typename T>
void f(T&& a){g(forward<T>(a));  
}

好像也没啥好处,就是static_cast替换为了forward。
区别:

  • static_cast 关键字
  • std::forward 模板函数,支持函数模板的变长参数。在<utility>头文件中。

例子:make_unique

// FUNCTION TEMPLATE make_unique
template <class _Ty, class... _Types, enable_if_t<!is_array_v<_Ty>, int> = 0>
_NODISCARD unique_ptr<_Ty> make_unique(_Types&&... _Args) { // make a unique_ptrreturn unique_ptr<_Ty>(new _Ty(_STD forward<_Types>(_Args)...));
}template <class _Ty, enable_if_t<is_array_v<_Ty> && extent_v<_Ty> == 0, int> = 0>
_NODISCARD unique_ptr<_Ty> make_unique(size_t _Size) { // make a unique_ptrusing _Elem = remove_extent_t<_Ty>;return unique_ptr<_Ty>(new _Elem[_Size]());
}

Perfect forward

转发时,需要保持被转发实参的所有性质不变:是否const、以及是左值还是右值。
完美转发 = std::forward + 万能引用 + 引用折叠

用途:一般作为多参数函数调用的中间层。

struct A{A(int &&n){ cout << "rvalue overload, n=" << n << endl; }A(int &n){ cout << "lvalue overload, n=" << n << endl; }A(const int &&n){ cout << "rvalue const overload, n=" << n << endl; }A(const int &n){ cout << "lvalue const overload, n=" << n << endl; }
};class B{
public:template<typename T1, typename T2, typename T3, typename T4>B(T1 &&t1, T2 &&t2, T3 &&t3, T4 &&t4) :a1_(std::forward<T1>(t1)),a2_(std::forward<T2>(t2)),a3_(std::forward<T3>(t3)),a4_(std::forward<T4>(t4)) {}
private:A a1_, a2_, a3_, a4_;
};int main(){int i = 1, j = 2, k = 3, m = 4;int &i_lref = i;const int &j_clref = j;int &&k_rref = std::move(k);const int &&m_crref = std::move(m);B b1(1, 2, 3, 4);B b2(i, j, k, m);B b3(i_lref, j_clref, k_rref, m_crref);B b4(i_lref, j_clref, std::move(k), static_cast<const int &&>(m));return 0;
}

直观的感受:构造函数只用写一个,就可以满足所有情形。代替了4^4=256种重载形式。

perfect的由来:参数传递的七种方案

不支持转发的场景 EffectiveModernCppChinese/item30.md

汇编视角

第一个视角
image

右值引用就是一个指向一个匿名变量的指针**。右值引用就是给了外界接触这个匿名变量的机会。**
可见初始化一个右值引用其实是开辟了两块空间,一块是右值引用类型那么大的匿名变量,一块是指向这个匿名变量的指针。

第二个视角
image

修改右值引用值的过程也分为两步,取出指针的值,也就是匿名变量的地址,把右值赋值给地址所指的匿名变量。和修改指针的值一样的。

Q:如何理解“右值引用延长了右值的生命周期”?
A:右值被放到了一个变量里,已经拥有了内存,当然就避免了被从寄存器里扔出去就消失的命运。这一块内存的生命周期就和右值引用变量一致了。

最佳实践

网上找的一个图:
在这里插入图片描述

资源使用语义

老师给大宝一个球,大宝拿去玩。老师说:注意些别玩坏了。

球的状态:可变:non-const,不可变:const。
意图的体现。

大宝在玩球,小宝也想玩,怎么办?
1. 小宝加入他,一起玩。
2. 大宝不给,小宝买了一个一模一样的球,各玩各的。
3. 大宝说:我不玩了,给你玩吧。小宝接着玩。

需要三个语意来表达(实际上也足够了):

1. 别名(二者唯一)link
2. 复制(二者各一)CTRL+C、CTRL+V。
3. 移动(一有一无)CTRL+X、CTRL+V。

别名对应引用,复制对应资源复制,移动对应资源转移。
性能的体现。

C++实现
别名语义:reference
复制语义:copy constructor、copy assignment operator。
移动语义:move constructor、move assignment operator。

底层实现都是依赖指针。

设计原则

C++语言设计规则 摘自《C++语言的设计和演化》
"资源使用"上体现的原则:

  1. 全局平衡
  2. C++ 的发展必须由实际问题推动
  3. 对不用的东西不需要付出任何代价(零开销规则)

简单的东西依然保持简单。

总结

C++的两个坑:1.兼容了C语言的指针 2.拷贝构造函数
引用解决了资源使用问题,但无法解决资源管理的问题。

指针是一个潘多拉盒子,要想解决根本问题,只能把盒子抛掉。这个对于C++来说不可能。
但是,C++在如何方便程序员做资源管理这个方向上也做了很多尝试。

开放问题

Q:“指针思想”是所有编程语言的基石,为什么?
A:

参考资料

https://blog.csdn.net/l477918269/article/details/90233908
https://zhuanlan.zhihu.com/p/374392832
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm
https://en.cppreference.com/w/cpp/language/rule_of_three
https://stackoverflow.com/questions/3582001/what-are-the-main-purposes-of-using-stdforward-and-which-problems-it-solves
https://www.zhihu.com/question/363686723/answer/1910830503
https://blog.csdn.net/qq_33113661/article/details/89040579?
https://zhuanlan.zhihu.com/p/265778316
https://stackoverflow.com/questions/3582001/what-are-the-main-purposes-of-using-stdforward-and-which-problems-it-solves
https://www.cnblogs.com/xusd-null/p/3761637.html
https://zhuanlan.zhihu.com/p/265815272

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. CentOS7.9安装mysql-8.0.28(最新)

    一、下载 MySQL :: Download MySQL Yum Repositoryhttps://dev.mysql.com/downloads/repo/yum/下载安装源 二、将rpm包上传到服务器 省略 三、卸载mariadb [rootXXXXX home]# rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.x86_64 [rootXXXXX home]# rpm -e --nodeps m…...

    2024/4/25 1:45:10
  2. 每日一题(2020年C/C++ B组第二场省赛第六题编程题)

    这里是蓝桥杯历年的题目&#xff0c;欢迎关注公众号“放码过来呀” 题目名称&#xff1a;成绩统计 题目描述&#xff1a; 小蓝给学生们组织了一场考试&#xff0c;卷面总分为100分&#xff0c;每个学生的得分都是一个0到100的整数。如果得分至少是60分&#xff0c;则称为及格…...

    2024/4/14 10:50:30
  3. FCC认证项目简介

    FCC认证项目简介 FCC&#xff08;Federal Communications Commission&#xff0c;美国联邦通信委员会&#xff09;于1934年由COMMUNICATIONACT建立是美国政府的一个独立机构&#xff0c;直接对国会负责。FCC通过控制无线电广播、电视、电信、卫星和电缆来协调国内和国…...

    2024/4/14 15:12:19
  4. 浅克隆和深克隆

    一、浅克隆(ShallowClone) 在浅克隆中&#xff0c;如果原型对象的成员变量是值类型&#xff0c;将复制一份给克隆对象&#xff1b;如果原型对象的成员变量是引用类型&#xff0c;则将引用对象的地址复制一份给克隆对象&#xff0c;也就是说原型对象和克隆对象的成员变量指向相…...

    2024/4/14 10:50:40
  5. Node-Buffer(缓冲区)

    Buffer&#xff08;缓冲区&#xff09; Buffer的结构和数组很像&#xff0c;操作方法和数组也类似数组中不能存储二进制文件&#xff0c;而Buffer就是专门用来存放二进制数据的它的元素为16进制的两位数。一个元素就代表一个字节 所以Buffer中每一个元素的范围都是00-ff之间00…...

    2024/4/20 17:11:38
  6. RK3399安装机器人系统—ROS

    文章目录 一、简介&#xff1a; 二、一键安装ros 2.1 首先用putty 链接rk3399开发平台 2.2、修改/etc/NetworkManager/NetworkManager.conf 配置 2.3、原来是我之前做有限链接的时候&#xff0c;添加了以太网本地链接&#xff0c;所以这里要改回来&#xff0c;在终端输入以下…...

    2024/4/14 10:50:40
  7. 全球与中国海上钻井行业现状调研及趋势分析报告

    2021年全球海上钻井市场销售额达到了812.2亿美元&#xff0c;预计2028年将达到1277亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;为6.6%&#xff08;2022-2028&#xff09;。地区层面来看&#xff0c;中国市场在过去几年变化较快&#xff0c;2021年市场规模为 百…...

    2024/4/14 10:50:50
  8. 办公软件 | Office LTSC标准版 2021 for Mac

    Office LTSC标准版 2021 for Mac包括Word&#xff0c;Excel&#xff0c;PowerPoint&#xff0c;Outlook&#xff0c;OneDrive和Teams&#xff0c;最新版本的Office将附带新的深色模式支持&#xff0c;辅助功能改进&#xff0c;对Word、Excel、PowerPoint、Outlook的性能改进对e…...

    2024/4/15 11:00:15
  9. HTML学习总结第一次

    1、网站和网页 网站是因特网上根据一定的规则&#xff0c;使用HTML等制作的用于特定展示特定内容的相关网页的集合。 &#xff08;网页的集合&#xff09; 网页是网站中的一个“页”,通常是HTML格式的文件。需用通过浏览器来阅读。是构成网站的基本元素。 2、Web标准 1、结…...

    2024/4/18 10:43:29
  10. ROS概述

    svn svn是用于代码管理 使用svn可以将代码上传到svn服务器上&#xff0c;若想使用该代码&#xff0c;可以从svn服务器上下载&#xff0c;可以实现更新&#xff0c;上传&#xff0c;提交等功能。 git GIT&#xff0c;全称是分布式版本控制系统&#xff0c;git通常在编程中会用…...

    2024/4/18 7:28:45
  11. 【中创解密】天价收购暴雪,微软史上最大一笔收购竟是为了元宇宙?

    ​科技行业并购规模的最高纪录&#xff0c;正在被改写。 2022年1月18日微软宣布&#xff0c;以每股95美元的现金收购动视暴雪&#xff0c;交易总金额约为687亿美元。这笔全现金交易将使微软加速移动游戏&#xff0c;并为元宇宙或虚拟环境提供帮助。 有钱任性 这笔交易是目前为…...

    2024/4/14 10:50:50
  12. 全球与中国轨道车辆车轮市场深度研究分析报告

    【报告篇幅】&#xff1a;102 【报告图表数】&#xff1a;149 【报告出版时间】&#xff1a;2021年12月 报告摘要 2021年全球轨道车辆车轮市场销售额达到了30亿美元&#xff0c;预计2028年将达到35亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;为2.1%&#…...

    2024/4/14 10:50:50
  13. 顶级父类java.lang.Object的九个方法

    一、简述 Object 类是除自己外所有 Java 类的终极父类。当然&#xff0c;数组也继承了 Object 类。然而&#xff0c;接口是不继承 Object 类的。因为编译器会自动引入java.lang包中的类型&#xff0c;即import java.lang.Object&#xff0c; 没必要声明出来。Java 也没有强制声…...

    2024/4/14 10:50:30
  14. 强化学习-从Q-Learning到DQN(Deep Q-Network)

    强化学习-从Q-Learning到DQN(Deep Q-Network) 强化学习是一种从环境状态映射到动作的学习&#xff0c;目标是使agent在与环境environment交互过程中获得最大的累积奖赏。 这个过程可以解释为&#xff0c;在时刻t&#xff0c;智能体agent基于当前环境的状态state&#xff0c;做…...

    2024/4/14 10:51:41
  15. Python读写文件

    转自&#xff1a;微点阅读 https://www.weidianyuedu.com/content/4817386305558.html 从文件读取和写入文件是任何编程语言的常见需求。任何文件在读写之前都需要打开。大多数编程语言都使用open()方法来打开文件&#xff0c;以便使用文件对象&#xff08;file object&#x…...

    2024/4/19 9:42:16
  16. [JAVA入门练习]第三题:根据用户输入的数字,输出对应的星期几

    特此声明&#xff1a;java纯新手小白入门练习写的&#xff0c;大佬勿喷 该题作用&#xff1a;练习switch语句 题目&#xff1a; 需求&#xff1a;根据用户输入的数字&#xff0c;输出对应的星期几 输入1时为&#xff1a;星期一 输入2时为&#xff1a;星期二 …...

    2024/4/14 10:51:41
  17. 小时工工资要如何去计算

    一、小时工工资要如何去计算 1、小时工资是按照当地工资标准总额除以天数然后除以8小时来计算。 2、小时工资标准适用于非全日制就业劳动者&#xff0c;非全日制用工小时计酬标准不得低于用人单位所在地人民政府规定的最低小时工资标准。 3、非全日制用工劳动报酬结算支付周…...

    2024/4/14 10:51:16
  18. Ant Design Vue Pro(V3.0.3 )MultiTab标签缓存,完美解决

    使用Ant Design Vue Pro 基础框架都知道好用&#xff0c;但是MultiTab标签一直未解决&#xff08;V3.0.3&#xff09;&#xff0c;最新版解决了但是要收费9K&#xff08;2022-01-21日&#xff09;。 首先需要实现如下&#xff1a; MultiTab标签打开菜单路由页面之后keep-alive…...

    2024/4/18 5:51:01
  19. RCE漏洞挖掘经验分享(一)

    一、RCE漏洞概述 RCE又称远程代码执行漏洞&#xff0c;可以让攻击者直接向后台服务器远程注入操作系统命令或者代码&#xff0c;从而控制后台系统。 产生的原因&#xff1a;服务器没有对执行命令的函数做严格的过滤&#xff0c;最终导致命令被执行。 二、命令执行函数 1.PHP…...

    2024/4/16 23:24:30
  20. JSF生命周期

    JSF(JavaServer Faces)应用程序框架的简单程序是自动管理生命周期阶段&#xff0c;并允许您手动管理。JSF(JavaServer Faces)应用程序的生命周期从客户端对页面发出HTTP请求时开始&#xff0c;并在服务器响应页面时结束。 JSF生命周期分为两个主要阶段&#xff1a; 执行阶段渲…...

    2024/4/17 19:23:52

最新文章

  1. 【深度学习】DDoS-Detection-Challenge aitrans2024 入侵检测,基于机器学习(深度学习)判断网络入侵

    当了次教练&#xff0c;做了个比赛的Stage1&#xff0c;https://github.com/AItransCompetition/DDoS-Detection-Challenge&#xff0c;得了100分。 一些记录&#xff1a; 1、提交的flowid不能重复&#xff0c;提交的是非入侵的数量和数据flowid,看check.cpp可知。 2、Stage…...

    2024/4/25 4:55:42
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. axios拦截器:每次请求自动带上 token

    Step 1&#xff1a;创建Axios实例并添加拦截器 在你的Vue项目中&#xff0c;一般我们会先导入axios&#xff0c;然后创建一个axios实例。这样做是为了方便统一管理和配置。 import axios from axios; // 引入axios// 创建一个axios实例 const service axios.create();// 添加请…...

    2024/4/22 20:45:57
  4. datalist是什么,有什么作用?

    <datalist>标签用于定义一个预定义选项列表&#xff0c;它可以与文本输入框&#xff08;<input type"text">&#xff09;一起使用&#xff0c;提供一组可选的值供用户选择或输入。<datalist>标签中的选项可以通过<option>标签来定义。 <…...

    2024/4/23 6:35:26
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/23 20:58:27
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/23 13:30:22
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/23 13:28:06
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/24 18:16:28
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/23 13:27:44
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/19 11:57:53
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/23 13:29:53
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/23 13:27:22
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/23 13:28:42
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/23 22:01:21
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/23 13:29:23
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/25 0:00:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/25 4:19:21
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/19 11:59:23
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/19 11:59:44
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/24 16:38:05
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/23 13:28:14
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/23 13:27:51
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/23 13:27:19
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57