news 2026/2/22 2:44:17

手搓简单 string 库:了解C++ 字符串底层

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手搓简单 string 库:了解C++ 字符串底层

今天带大家来手搓简单的 string 库了,顺便一起了解它的底层逻辑,有利于后面STL的学习

1.简单实现string的头文件

我们用 .h 和 .cpp 文件分离的方式书写,我先给出它的类:

代码语言:javascript

AI代码解释

#pragma once #include<string.h> #include<assert.h> #include<iostream> #include<algorithm> using namespace std; namespace bit { class string { public: //static不能类内定义,但是static const 可以。 static const size_t npos = -1; private: char* _str; size_t _capacity; size_t _size; }; }

string的字符串和C语言的类似,底层也有用指针实现,并且调试观察标准库的string可以发现,它还有size和capacity,表示长度和空间。我们的目的是实现简单功能,以了解它的底层逻辑,那就先用这三个作为私有成员。还有一个npos,用于很多string函数中,提前声明定义一下。

留意一下注释。

命名空间 bit 是为了和标准库的string作区分,也可以给我们的string类改个名字,避免冲突。

2.string类的 默认成员函数

2.1构造函数

我们来实现string的构造函数.

代码语言:javascript

AI代码解释

string(const char* str = "");

思路:获取字符串str的长度(strlen获取,但是这样不包括'\0'的长度),然后给_str开辟它长度+1,(为了包含'\0') ,同样给_capacity初始化它的长度,最后用strcpy把str的内容拷贝到_str内

代码语言:javascript

AI代码解释

string::string(const char* str) :_size(strlen(str)) { _str = new char[_size + 1]; _capacity = _size; strcpy(_str, str); }

初始化列表只初始化_size的原因与私有成员声明的顺序有关,不方便全在初始化列表。会先初始化_str,这就会导致strlen函数会重复调用多次(因为strlen不能先初始化给_size,导致_str只能先自己调用strlen),效率较低。也不方便修改私有成员,随意修改可能导致初始化顺序出错。

2.2拷贝构造函数

代码语言:javascript

AI代码解释

string(const string& s);

思路:和构造函数一样,只不过有一点改变:这次是string对象的别名,需要调用他底层的私有成员来拷贝,那么需要调整一下strcpy部分,并且不需要strlen,只需要调用底层的_size,_capacity彻底修改底层三个私有成员就行

代码语言:javascript

AI代码解释

string::string(const string& s) :_size(s._size) { _str = new char[_size + 1]; strcpy(_str, s._str); _capacity = s._capacity; }
2.2.1现代写法

swap函数,2.4有介绍。

代码语言:javascript

AI代码解释

string::string(const string& s) { string tmp(s._str); swap(tmp); }

调用构造函数构造一个和s_str构造一样大的空间,一样的值,而这个刚好就是 *this 指针的需求,于是直接用swap调换*this和tmp的资源,这样就完成了拷贝构造。本质上效率没有提升,只是提供了一个新颖的思路,代码更简洁。本质是代码复用

2.3析构函数

代码语言:javascript

AI代码解释

~string();

思路:析构函数,用delete销毁_str,并且置空就行,_size 和_capacity不需要修改,因为对象销毁了它们没意义了,也没申请资源。 注意:_str本质上是指向一片连续空间(字符串),所以要用delete[ ]

代码语言:javascript

AI代码解释

string::~string() { delete[] _str; _str = nullptr; //_size = 0; //可有可无,写了不会错,更直观。 //_capacity = 0; }
2.4赋值运算符重载 结合 swap 函数 (现代写法)

代码语言:javascript

AI代码解释

string& operator=(const string& s);

思路:和拷贝构造函数的区别就是,赋值运算符重载针对的是已存在的对象,那思路基本一致,

但需要注意:赋值不是初始化,两边都申请了资源,资源有大小之分,大的赋值给小的,就需要小的开空间,不然就会越界写内存

代码语言:javascript

AI代码解释

string& string::operator=(const string& s) { //排除自己赋值自己的清空,少做无用功 if (this != &s) { string tmp(s); swap(tmp); } return *this; }

所以,std : : swap函数就很好的解决了这一点:

代码语言:javascript

AI代码解释

void string::swap(string& s) { std::swap(_str, s._str); std::swap(_size, s._size); std::swap(_capacity, s._capacity); }

我们的swap函数通过调用了标准库的swap函数,实现了资源的交换,不需要我们自己麻烦地比较资源大小和交换。 其实这个函数,以前效率十分低下,需要进行三次深拷贝,代价极大。但有了移动构造和右值引用,并且编译器各种超前优化后,效率还很可观,以后再介绍

m.tnflx.pro/ArTicle/11757.Htm
m.tnflx.pro/ArTicle/79719.Htm
m.tnflx.pro/ArTicle/24682.Htm
m.tnflx.pro/ArTicle/68046.Htm
m.tnflx.pro/ArTicle/44202.Htm
m.tnflx.pro/ArTicle/33995.Htm
m.tnflx.pro/ArTicle/84266.Htm
m.tnflx.pro/ArTicle/35555.Htm
m.tnflx.pro/ArTicle/46260.Htm
m.tnflx.pro/ArTicle/57197.Htm
m.tnflx.pro/ArTicle/35133.Htm
m.tnflx.pro/ArTicle/62442.Htm
m.tnflx.pro/ArTicle/57593.Htm
m.tnflx.pro/ArTicle/51913.Htm
m.tnflx.pro/ArTicle/75575.Htm
m.tnflx.pro/ArTicle/75777.Htm
m.tnflx.pro/ArTicle/93391.Htm
m.tnflx.pro/ArTicle/35575.Htm
m.tnflx.pro/ArTicle/57393.Htm
m.tnflx.pro/ArTicle/91717.Htm
m.tnflx.pro/ArTicle/37917.Htm
m.tnflx.pro/ArTicle/39713.Htm
m.tnflx.pro/ArTicle/19999.Htm
m.tnflx.pro/ArTicle/13943.Htm
m.tnflx.pro/ArTicle/17797.Htm
m.tnflx.pro/ArTicle/57117.Htm
m.tnflx.pro/ArTicle/53777.Htm
m.tnflx.pro/ArTicle/19555.Htm
m.tnflx.pro/ArTicle/97931.Htm
m.tnflx.pro/ArTicle/17917.Htm
m.tnflx.pro/ArTicle/59995.Htm
m.tnflx.pro/ArTicle/26004.Htm
m.tnflx.pro/ArTicle/33979.Htm
m.tnflx.pro/ArTicle/79795.Htm
m.tnflx.pro/ArTicle/19337.Htm
m.tnflx.pro/ArTicle/77371.Htm
m.tnflx.pro/ArTicle/13599.Htm
m.tnflx.pro/ArTicle/99553.Htm
m.tnflx.pro/ArTicle/99511.Htm
m.tnflx.pro/ArTicle/80848.Htm
m.tnflx.pro/ArTicle/19733.Htm
m.tnflx.pro/ArTicle/19711.Htm
m.tnflx.pro/ArTicle/33771.Htm
m.tnflx.pro/ArTicle/44668.Htm
m.tnflx.pro/ArTicle/15399.Htm
m.tnflx.pro/ArTicle/13491.Htm
m.tnflx.pro/ArTicle/93571.Htm
m.tnflx.pro/ArTicle/53177.Htm
m.tnflx.pro/ArTicle/11317.Htm
m.tnflx.pro/ArTicle/46046.Htm
m.tnflx.pro/ArTicle/68620.Htm
m.tnflx.pro/ArTicle/97313.Htm
m.tnflx.pro/ArTicle/19777.Htm
m.tnflx.pro/ArTicle/68466.Htm
m.tnflx.pro/ArTicle/37777.Htm
m.tnflx.pro/ArTicle/02280.Htm
m.tnflx.pro/ArTicle/99339.Htm
m.tnflx.pro/ArTicle/97377.Htm
m.tnflx.pro/ArTicle/57337.Htm
m.tnflx.pro/ArTicle/73913.Htm
m.tnflx.pro/ArTicle/73593.Htm
m.tnflx.pro/ArTicle/15335.Htm
m.tnflx.pro/ArTicle/95377.Htm
m.tnflx.pro/ArTicle/13795.Htm
m.tnflx.pro/ArTicle/91979.Htm
m.tnflx.pro/ArTicle/75913.Htm
m.tnflx.pro/ArTicle/33975.Htm
m.tnflx.pro/ArTicle/19779.Htm
m.tnflx.pro/ArTicle/31513.Htm
m.tnflx.pro/ArTicle/73931.Htm
m.tnflx.pro/ArTicle/17757.Htm
m.tnflx.pro/ArTicle/91519.Htm
m.tnflx.pro/ArTicle/97133.Htm
m.tnflx.pro/ArTicle/68808.Htm
m.tnflx.pro/ArTicle/68448.Htm
m.tnflx.pro/ArTicle/79953.Htm
m.tnflx.pro/ArTicle/97191.Htm
m.tnflx.pro/ArTicle/51199.Htm
m.tnflx.pro/ArTicle/44002.Htm
m.tnflx.pro/ArTicle/17513.Htm
m.tnflx.pro/ArTicle/15359.Htm
m.tnflx.pro/ArTicle/48444.Htm
m.tnflx.pro/ArTicle/55113.Htm
m.tnflx.pro/ArTicle/15319.Htm
m.tnflx.pro/ArTicle/37173.Htm
m.tnflx.pro/ArTicle/86240.Htm
m.tnflx.pro/ArTicle/77775.Htm
m.tnflx.pro/ArTicle/39511.Htm
m.tnflx.pro/ArTicle/97991.Htm
m.tnflx.pro/ArTicle/68886.Htm
m.tnflx.pro/ArTicle/53933.Htm
m.tnflx.pro/ArTicle/53191.Htm
m.tnflx.pro/ArTicle/51333.Htm
m.tnflx.pro/ArTicle/03059.Htm
m.tnflx.pro/ArTicle/53751.Htm
m.tnflx.pro/ArTicle/53711.Htm
m.tnflx.pro/ArTicle/39933.Htm
m.tnflx.pro/ArTicle/22428.Htm
m.tnflx.pro/ArTicle/71935.Htm
m.tnflx.pro/ArTicle/31731.Htm
m.tnflx.pro/ArTicle/53715.Htm
m.tnflx.pro/ArTicle/04680.Htm
m.tnflx.pro/ArTicle/84680.Htm
m.tnflx.pro/ArTicle/95751.Htm
m.tnflx.pro/ArTicle/55575.Htm
m.tnflx.pro/ArTicle/60686.Htm
m.tnflx.pro/ArTicle/71311.Htm
m.tnflx.pro/ArTicle/59115.Htm
m.tnflx.pro/ArTicle/77517.Htm
m.tnflx.pro/ArTicle/72178.Htm
m.tnflx.pro/ArTicle/79591.Htm
m.tnflx.pro/ArTicle/53353.Htm
m.tnflx.pro/ArTicle/95715.Htm
m.tnflx.pro/ArTicle/95315.Htm
m.tnflx.pro/ArTicle/24466.Htm
m.tnflx.pro/ArTicle/13553.Htm
m.tnflx.pro/ArTicle/91917.Htm
m.tnflx.pro/ArTicle/20820.Htm
m.tnflx.pro/ArTicle/08260.Htm
m.tnflx.pro/ArTicle/13535.Htm
m.tnflx.pro/ArTicle/91359.Htm
m.tnflx.pro/ArTicle/08466.Htm
m.tnflx.pro/ArTicle/55199.Htm
m.tnflx.pro/ArTicle/75957.Htm
m.tnflx.pro/ArTicle/33511.Htm
m.tnflx.pro/ArTicle/71837.Htm
m.tnflx.pro/ArTicle/99753.Htm
m.tnflx.pro/ArTicle/39173.Htm
m.tnflx.pro/ArTicle/55759.Htm
m.tnflx.pro/ArTicle/31135.Htm
m.tnflx.pro/ArTicle/91793.Htm
m.tnflx.pro/ArTicle/35155.Htm
m.tnflx.pro/ArTicle/75557.Htm
m.tnflx.pro/ArTicle/77539.Htm
m.tnflx.pro/ArTicle/15131.Htm
m.tnflx.pro/ArTicle/59351.Htm
m.tnflx.pro/ArTicle/86660.Htm
m.tnflx.pro/ArTicle/20080.Htm
m.tnflx.pro/ArTicle/37711.Htm
m.tnflx.pro/ArTicle/93935.Htm
m.tnflx.pro/ArTicle/31933.Htm
m.tnflx.pro/ArTicle/19939.Htm
m.tnflx.pro/ArTicle/48020.Htm
m.tnflx.pro/ArTicle/79739.Htm
m.tnflx.pro/ArTicle/77977.Htm
m.tnflx.pro/ArTicle/55715.Htm
m.tnflx.pro/ArTicle/51171.Htm
m.tnflx.pro/ArTicle/15959.Htm
m.tnflx.pro/ArTicle/99539.Htm
m.tnflx.pro/ArTicle/84686.Htm
m.tnflx.pro/ArTicle/13717.Htm
m.tnflx.pro/ArTicle/42020.Htm
m.tnflx.pro/ArTicle/20004.Htm
m.tnflx.pro/ArTicle/75159.Htm
m.tnflx.pro/ArTicle/57199.Htm
m.tnflx.pro/ArTicle/59975.Htm
m.tnflx.pro/ArTicle/00288.Htm
m.tnflx.pro/ArTicle/95793.Htm
m.tnflx.pro/ArTicle/35779.Htm
m.tnflx.pro/ArTicle/42820.Htm
m.tnflx.pro/ArTicle/57195.Htm
m.tnflx.pro/ArTicle/79597.Htm
m.tnflx.pro/ArTicle/31357.Htm
m.tnflx.pro/ArTicle/59399.Htm
m.tnflx.pro/ArTicle/55719.Htm
m.tnflx.pro/ArTicle/93313.Htm
m.tnflx.pro/ArTicle/88280.Htm
m.tnflx.pro/ArTicle/99155.Htm
m.tnflx.pro/ArTicle/48408.Htm
m.tnflx.pro/ArTicle/19359.Htm
m.tnflx.pro/ArTicle/15595.Htm
m.tnflx.pro/ArTicle/66246.Htm
m.tnflx.pro/ArTicle/11955.Htm
m.tnflx.pro/ArTicle/55917.Htm
m.tnflx.pro/ArTicle/91559.Htm
m.tnflx.pro/ArTicle/26280.Htm
m.tnflx.pro/ArTicle/39571.Htm
m.tnflx.pro/ArTicle/79175.Htm
m.tnflx.pro/ArTicle/17157.Htm
m.tnflx.pro/ArTicle/97975.Htm
m.tnflx.pro/ArTicle/57951.Htm
m.tnflx.pro/ArTicle/73173.Htm
m.tnflx.pro/ArTicle/59111.Htm
m.tnflx.pro/ArTicle/75513.Htm
m.tnflx.pro/ArTicle/37577.Htm
m.tnflx.pro/ArTicle/31537.Htm
m.tnflx.pro/ArTicle/84286.Htm
m.tnflx.pro/ArTicle/39931.Htm
m.tnflx.pro/ArTicle/93373.Htm
m.tnflx.pro/ArTicle/60664.Htm
m.tnflx.pro/ArTicle/20222.Htm
m.tnflx.pro/ArTicle/75531.Htm
m.tnflx.pro/ArTicle/55979.Htm
m.tnflx.pro/ArTicle/57793.Htm
m.tnflx.pro/ArTicle/39913.Htm
m.tnflx.pro/ArTicle/91113.Htm
m.tnflx.pro/ArTicle/19931.Htm
m.tnflx.pro/ArTicle/19973.Htm
m.tnflx.pro/ArTicle/31579.Htm
m.tnflx.pro/ArTicle/86226.Htm
m.tnflx.pro/ArTicle/77959.Htm
m.tnflx.pro/ArTicle/82068.Htm
m.tnflx.pro/ArTicle/55557.Htm
m.tnflx.pro/ArTicle/71795.Htm
m.tnflx.pro/ArTicle/75771.Htm
m.tnflx.pro/ArTicle/35591.Htm
m.tnflx.pro/ArTicle/95755.Htm
m.tnflx.pro/ArTicle/73139.Htm
m.tnflx.pro/ArTicle/19731.Htm
m.tnflx.pro/ArTicle/57157.Htm
m.tnflx.pro/ArTicle/84048.Htm
m.tnflx.pro/ArTicle/19519.Htm
m.tnflx.pro/ArTicle/79599.Htm
m.tnflx.pro/ArTicle/79771.Htm
m.tnflx.pro/ArTicle/73915.Htm
m.tnflx.pro/ArTicle/11359.Htm
m.tnflx.pro/ArTicle/42680.Htm
m.tnflx.pro/ArTicle/93377.Htm
m.tnflx.pro/ArTicle/64044.Htm
m.tnflx.pro/ArTicle/95579.Htm
m.tnflx.pro/ArTicle/31193.Htm
m.tnflx.pro/ArTicle/97353.Htm
m.tnflx.pro/ArTicle/15915.Htm
m.tnflx.pro/ArTicle/93537.Htm
m.tnflx.pro/ArTicle/55173.Htm
m.tnflx.pro/ArTicle/13591.Htm
m.tnflx.pro/ArTicle/31531.Htm
m.tnflx.pro/ArTicle/60020.Htm
m.tnflx.pro/ArTicle/28246.Htm
m.tnflx.pro/ArTicle/13159.Htm
m.tnflx.pro/ArTicle/17791.Htm
m.tnflx.pro/ArTicle/37515.Htm
m.tnflx.pro/ArTicle/33333.Htm
m.tnflx.pro/ArTicle/31711.Htm
m.tnflx.pro/ArTicle/77397.Htm
m.tnflx.pro/ArTicle/71595.Htm
m.tnflx.pro/ArTicle/91571.Htm
m.tnflx.pro/ArTicle/13517.Htm
m.tnflx.pro/ArTicle/15159.Htm
m.tnflx.pro/ArTicle/42082.Htm
m.tnflx.pro/ArTicle/13797.Htm
m.tnflx.pro/ArTicle/39515.Htm
m.tnflx.pro/ArTicle/66820.Htm
m.tnflx.pro/ArTicle/28080.Htm
m.tnflx.pro/ArTicle/53791.Htm
m.tnflx.pro/ArTicle/00204.Htm
m.tnflx.pro/ArTicle/22604.Htm
m.tnflx.pro/ArTicle/13735.Htm
m.tnflx.pro/ArTicle/86842.Htm
m.tnflx.pro/ArTicle/53339.Htm
m.tnflx.pro/ArTicle/77979.Htm
m.tnflx.pro/ArTicle/77173.Htm
m.tnflx.pro/ArTicle/53731.Htm
m.tnflx.pro/ArTicle/97179.Htm
m.tnflx.pro/ArTicle/75757.Htm
m.tnflx.pro/ArTicle/13375.Htm
m.tnflx.pro/ArTicle/59193.Htm
m.tnflx.pro/ArTicle/19355.Htm
m.tnflx.pro/ArTicle/17135.Htm
m.tnflx.pro/ArTicle/79317.Htm
m.tnflx.pro/ArTicle/95775.Htm
m.tnflx.pro/ArTicle/79915.Htm
m.tnflx.pro/ArTicle/26406.Htm
m.tnflx.pro/ArTicle/35735.Htm
m.tnflx.pro/ArTicle/79731.Htm
m.tnflx.pro/ArTicle/57771.Htm
m.tnflx.pro/ArTicle/22200.Htm
m.tnflx.pro/ArTicle/75313.Htm
m.tnflx.pro/ArTicle/99513.Htm
m.tnflx.pro/ArTicle/88666.Htm
m.tnflx.pro/ArTicle/71533.Htm
m.tnflx.pro/ArTicle/33153.Htm
m.tnflx.pro/ArTicle/88208.Htm
m.tnflx.pro/ArTicle/75193.Htm
m.tnflx.pro/ArTicle/99535.Htm
m.tnflx.pro/ArTicle/39991.Htm
m.tnflx.pro/ArTicle/91111.Htm
m.tnflx.pro/ArTicle/93753.Htm
m.tnflx.pro/ArTicle/73535.Htm
m.tnflx.pro/ArTicle/62428.Htm
m.tnflx.pro/ArTicle/95791.Htm
m.tnflx.pro/ArTicle/99157.Htm
m.tnflx.pro/ArTicle/17955.Htm
m.tnflx.pro/ArTicle/93177.Htm
m.tnflx.pro/ArTicle/95155.Htm
m.tnflx.pro/ArTicle/11795.Htm
m.tnflx.pro/ArTicle/73379.Htm
m.tnflx.pro/ArTicle/53115.Htm
m.tnflx.pro/ArTicle/60046.Htm
m.tnflx.pro/ArTicle/55755.Htm
m.tnflx.pro/ArTicle/86608.Htm
m.tnflx.pro/ArTicle/35397.Htm
m.tnflx.pro/ArTicle/53155.Htm
m.tnflx.pro/ArTicle/46008.Htm
m.tnflx.pro/ArTicle/51539.Htm
m.tnflx.pro/ArTicle/80080.Htm
m.tnflx.pro/ArTicle/55751.Htm
m.tnflx.pro/ArTicle/71153.Htm
m.tnflx.pro/ArTicle/15973.Htm
m.tnflx.pro/ArTicle/11573.Htm
m.tnflx.pro/ArTicle/08428.Htm
m.tnflx.pro/ArTicle/39115.Htm
m.tnflx.pro/ArTicle/15919.Htm
m.tnflx.pro/ArTicle/57115.Htm
m.tnflx.pro/ArTicle/71539.Htm
m.tnflx.pro/ArTicle/59997.Htm
m.tnflx.pro/ArTicle/40844.Htm
m.tnflx.pro/ArTicle/28226.Htm
m.tnflx.pro/ArTicle/99199.Htm
m.tnflx.pro/ArTicle/48739.Htm
m.tnflx.pro/ArTicle/11337.Htm
m.tnflx.pro/ArTicle/88022.Htm
m.tnflx.pro/ArTicle/91935.Htm
m.tnflx.pro/ArTicle/31937.Htm
m.tnflx.pro/ArTicle/82460.Htm
m.tnflx.pro/ArTicle/79351.Htm
m.tnflx.pro/ArTicle/71111.Htm
m.tnflx.pro/ArTicle/99577.Htm
m.tnflx.pro/ArTicle/59939.Htm
m.tnflx.pro/ArTicle/77571.Htm
m.tnflx.pro/ArTicle/66204.Htm
m.tnflx.pro/ArTicle/71513.Htm
m.tnflx.pro/ArTicle/17315.Htm
m.tnflx.pro/ArTicle/71577.Htm
m.tnflx.pro/ArTicle/79379.Htm
m.tnflx.pro/ArTicle/93337.Htm
m.tnflx.pro/ArTicle/17953.Htm
m.tnflx.pro/ArTicle/19579.Htm
m.tnflx.pro/ArTicle/57171.Htm
m.tnflx.pro/ArTicle/44082.Htm
m.tnflx.pro/ArTicle/82080.Htm
m.tnflx.pro/ArTicle/93915.Htm
m.tnflx.pro/ArTicle/35737.Htm
m.tnflx.pro/ArTicle/35115.Htm
m.tnflx.pro/ArTicle/66602.Htm
m.tnflx.pro/ArTicle/11335.Htm
m.tnflx.pro/ArTicle/48240.Htm
m.tnflx.pro/ArTicle/80608.Htm
m.tnflx.pro/ArTicle/39159.Htm
m.tnflx.pro/ArTicle/13519.Htm
m.tnflx.pro/ArTicle/93591.Htm
m.tnflx.pro/ArTicle/93319.Htm
m.tnflx.pro/ArTicle/33133.Htm
m.tnflx.pro/ArTicle/31511.Htm
m.tnflx.pro/ArTicle/15559.Htm
m.tnflx.pro/ArTicle/79531.Htm
m.tnflx.pro/ArTicle/82682.Htm
m.tnflx.pro/ArTicle/11733.Htm
m.tnflx.pro/ArTicle/99151.Htm
m.tnflx.pro/ArTicle/26668.Htm
m.tnflx.pro/ArTicle/20622.Htm
m.tnflx.pro/ArTicle/13937.Htm
m.tnflx.pro/ArTicle/91577.Htm
m.tnflx.pro/ArTicle/37111.Htm
m.tnflx.pro/ArTicle/75117.Htm
m.tnflx.pro/ArTicle/79171.Htm
m.tnflx.pro/ArTicle/95151.Htm
m.tnflx.pro/ArTicle/40862.Htm
m.tnflx.pro/ArTicle/37937.Htm
m.tnflx.pro/ArTicle/00820.Htm
m.tnflx.pro/ArTicle/59559.Htm
m.tnflx.pro/ArTicle/15351.Htm
m.tnflx.pro/ArTicle/62882.Htm
m.tnflx.pro/ArTicle/53999.Htm
m.tnflx.pro/ArTicle/77117.Htm
m.tnflx.pro/ArTicle/19591.Htm
m.tnflx.pro/ArTicle/73553.Htm
m.tnflx.pro/ArTicle/46826.Htm
m.tnflx.pro/ArTicle/53157.Htm
m.tnflx.pro/ArTicle/73351.Htm
m.tnflx.pro/ArTicle/33351.Htm
m.tnflx.pro/ArTicle/06408.Htm
m.tnflx.pro/ArTicle/97997.Htm
m.tnflx.pro/ArTicle/15535.Htm
m.tnflx.pro/ArTicle/53931.Htm
m.tnflx.pro/ArTicle/73911.Htm
m.tnflx.pro/ArTicle/00404.Htm
m.tnflx.pro/ArTicle/48220.Htm
m.tnflx.pro/ArTicle/00880.Htm
m.tnflx.pro/ArTicle/77333.Htm
m.tnflx.pro/ArTicle/31155.Htm
m.tnflx.pro/ArTicle/17957.Htm
m.tnflx.pro/ArTicle/22424.Htm
m.tnflx.pro/ArTicle/00408.Htm
m.tnflx.pro/ArTicle/15395.Htm
m.tnflx.pro/ArTicle/39759.Htm
m.tnflx.pro/ArTicle/35775.Htm
m.tnflx.pro/ArTicle/59391.Htm
m.tnflx.pro/ArTicle/73155.Htm
m.tnflx.pro/ArTicle/31951.Htm
m.tnflx.pro/ArTicle/39939.Htm
m.tnflx.pro/ArTicle/42208.Htm

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/19 7:32:07

Excalidraw支持语音转文字标注,记录灵感更快捷

Excalidraw 的语音革命&#xff1a;用说话的方式画架构图 在一场紧张的产品评审会上&#xff0c;工程师刚讲到“用户请求先经过负载均衡&#xff0c;再进应用集群”&#xff0c;产品经理却还在手忙脚乱地拖拽矩形框。这种“嘴快于手”的尴尬&#xff0c;在远程协作中屡见不鲜。…

作者头像 李华
网站建设 2026/2/20 5:42:58

Excalidraw镜像配备日志审计功能,满足监管要求

Excalidraw镜像配备日志审计功能&#xff0c;满足监管要求 在金融、医疗和政务等高度监管的行业中&#xff0c;一个看似简单的协作工具——比如虚拟白板——也可能成为合规审查的关键环节。当团队用它来绘制系统架构图、业务流程或安全策略时&#xff0c;每一次修改、删除甚至访…

作者头像 李华
网站建设 2026/2/21 18:24:35

37、保障网络安全:全面策略与实施指南

保障网络安全:全面策略与实施指南 1. 网络分类与风险考量 在进行网络安全规划时,我们会逐渐意识到可能遗漏某些类型的安全需求。若未发现缺失,可能是未充分考虑系统的安全需求。网络分类方案主要受两方面因素驱动: - 通信模式:若一台计算机无需以特定方式与另一台计算机…

作者头像 李华
网站建设 2026/2/19 21:10:42

39、分支机构与小企业服务器安全指南

分支机构与小企业服务器安全指南 1. 分支机构服务器安全 1.1 BitLocker 加密技术 BitLocker 是 Windows Server 2008 中的一项可选加密功能,它能有效保护数据安全,但在使用时需注意以下几点: - 签名无效与恢复情况 :若攻击者物理持有存储卷或计算机,可能导致签名无效…

作者头像 李华
网站建设 2026/2/16 18:39:56

77、系统性能调优指南

系统性能调优指南 1. ReadyBoost 的作用 ReadyBoost 不会让系统瞬间提速,其效果并非立竿见影。它的主要目的是消除在加载特定程序、切换打开的程序以及执行其他通常涉及分页文件的操作时可能遇到的短暂延迟。随着时间推移,在这些方面会有更快的响应速度,甚至电脑启动也会更…

作者头像 李华
网站建设 2026/2/21 16:50:28

81、Windows 8 网络资源共享与使用指南

Windows 8 网络资源共享与使用指南 在当今数字化的时代,计算机网络的普及使得资源共享变得尤为重要。通过网络,我们可以轻松地在不同计算机之间共享文件、打印机等资源,提高工作效率和生活便利性。本文将详细介绍 Windows 8 系统下的网络资源共享与使用方法,帮助你充分利用…

作者头像 李华