国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

這篇具有很好參考價值的文章主要介紹了C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

STL

STL提供了六大組件,彼此之間可以組合套用,這六大組件分別是:容器、算法、迭代器、仿函數(shù)、適配器、空間配置器。

  1. 數(shù)據(jù)結(jié)構(gòu)和容器管理:STL 提供了多種數(shù)據(jù)結(jié)構(gòu)和容器,如向量(vector)、鏈表(list)、集合(set)、映射(map)等。這些容器可以幫助程序員方便地存儲和管理數(shù)據(jù),根據(jù)需求進(jìn)行動態(tài)調(diào)整和操作。
  2. 算法和數(shù)據(jù)處理:STL 中提供了大量的算法,如排序、查找、遍歷等,這些算法可以直接應(yīng)用于不同類型的容器,幫助程序員高效地對數(shù)據(jù)進(jìn)行處理和操作。
  3. 迭代器和訪問控制:STL 中的迭代器提供了統(tǒng)一的訪問接口,使得程序員能夠方便地遍歷容器中的元素并進(jìn)行讀寫操作。迭代器可以靈活地控制訪問范圍和方式,為數(shù)據(jù)訪問提供了高度的靈活性。
  4. 泛型編程:STL 的設(shè)計基于泛型編程思想,通過模板機制實現(xiàn)了通用的數(shù)據(jù)結(jié)構(gòu)和算法。這使得 STL 能夠適用于各種數(shù)據(jù)類型,并且支持用戶自定義類型的操作,從而提高了代碼的重用性和可擴展性。
  5. 性能優(yōu)化:STL 中的容器和算法都經(jīng)過高度優(yōu)化,使用 STL 可以借助這些優(yōu)化的實現(xiàn)來提高程序的執(zhí)行效率和性能。

總的來說,STL 適用于需要數(shù)據(jù)結(jié)構(gòu)、算法和迭代器等功能的各種場景。它為 C++ 程序員提供了豐富的工具和功能,幫助他們更加高效地處理和操作數(shù)據(jù),提高代碼的可讀性、重用性和性能。無論是簡單的數(shù)據(jù)存儲管理還是復(fù)雜的數(shù)據(jù)處理和算法實現(xiàn),STL 都是一個強大而實用的工具庫。

容器:各種數(shù)據(jù)結(jié)構(gòu),如vector、list、deque、set、map等,用來存放數(shù)據(jù),從實現(xiàn)角度來看,STL容器是一種class template。

算法:各種常用的算法,如sort、find、copy、for_each。從實現(xiàn)的角度來看,STL算法是一種function tempalte.

迭代器:扮演了容器與算法之間的膠合劑,共有五種類型,從實現(xiàn)角度來看,迭代器是一種將operator* , operator-> , operator++,operator--等指針相關(guān)操作予以重載的class template. 所有STL容器都附帶有自己專屬的迭代器,只有容器的設(shè)計者才知道如何遍歷自己的元素。原生指針(native pointer)也是一種迭代器。

仿函數(shù):行為類似函數(shù),可作為算法的某種策略。從實現(xiàn)角度來看,仿函數(shù)是一種重載了operator()的class 或者class template

適配器:一種用來修飾容器或者仿函數(shù)或迭代器接口的東西。

空間配置器:負(fù)責(zé)空間的配置與管理。從實現(xiàn)角度看,配置器是一個實現(xiàn)了動態(tài)空間配置、空間管理、空間釋放的class tempalte.

STL優(yōu)點

  • STL 是 C++的一部分,因此不用額外安裝什么,它被內(nèi)建在你的編譯器之內(nèi)。

  • STL 的一個重要特點是數(shù)據(jù)結(jié)構(gòu)和算法的分離。盡管這是個簡單的概念,但是這種分離使得 STL 變得非常通用。例如:在 STL 的 vector 容器中,可以放入元素、基礎(chǔ)數(shù)據(jù)類型變量、元素的地址;STL 的 sort() 排序函數(shù)可以用來操作 vector,list 等容器。

  • 程序員可以不用思考 STL 具體的實現(xiàn)過程,只要能夠熟練使用 STL 就 OK 了。這樣他們就可以把精力放在程序開發(fā)的別的方面。

  • STL 具有高可重用性,高性能,高移植性,跨平臺的優(yōu)點。

STL三大組件

容器

常用的數(shù)據(jù)結(jié)構(gòu)無外乎數(shù)組(array),鏈表(list),tree(樹),棧(stack),隊列(queue),集合(set),映射表(map),根據(jù)數(shù)據(jù)在容器中的排列特性,這些數(shù)據(jù)分為序列式容器關(guān)聯(lián)式容器兩種。

? 序列式容器就是容器元素在容器中的位置是由元素進(jìn)入容器的時間和地點來決定。Vector容器、Deque容器、List容器、Stack容器、Queue容器。

? 關(guān)聯(lián)式容器是指容器已經(jīng)有了一定的規(guī)則,容器元素在容器中的位置由我的規(guī)則來決定。Set/multiset容器 Map/multimap容器

算法

算法分為:質(zhì)變算法非質(zhì)變算法。

質(zhì)變算法:是指運算過程中會更改區(qū)間內(nèi)的元素的內(nèi)容。例如拷貝,替換,刪除等等

非質(zhì)變算法:是指運算過程中不會更改區(qū)間內(nèi)的元素內(nèi)容,例如查找、計數(shù)、遍歷、尋找極值等等

迭代器

迭代器(iterator)是一種抽象的設(shè)計概念,現(xiàn)實程序語言中并沒有直接對應(yīng)于這個概念的實物。在<>一書中提供了23中設(shè)計模式的完整描述,其中iterator模式定義如下:提供一種方法,使之能夠依序?qū)ぴL某個容器所含的各個元素,而又無需暴露該容器的內(nèi)部表示方式。

迭代器的設(shè)計思維-STL的關(guān)鍵所在,STL的中心思想在于將數(shù)據(jù)容器(container)和算法(algorithms)分開,彼此獨立設(shè)計,最后再一貼膠著劑將他們撮合在一起。從技術(shù)角度來看,容器和算法的泛型化并不困難,c++的class template和function template可分別達(dá)到目標(biāo),如果設(shè)計出兩這個之間的良好的膠著劑,才是大難題。

迭代器的種類:

輸入迭代器 提供對數(shù)據(jù)的只讀訪問 只讀,支持++、==、!=
輸出迭代器 提供對數(shù)據(jù)的只寫訪問 只寫,支持++
前向迭代器 提供讀寫操作,并能向前推進(jìn)迭代器 讀寫,支持++、==、!=
雙向迭代器 提供讀寫操作,并能向前和向后操作 讀寫,支持++、--,
隨機訪問迭代器 提供讀寫操作,并能在數(shù)據(jù)中隨機移動 讀寫,支持++、--、[n]、-n、<、<=、>、>=
void test2() {
	vector<int>r;//STL 中的標(biāo)準(zhǔn)容器之一 :動態(tài)數(shù)組
	r.push_back(1);//vector 容器提供的插入數(shù)據(jù)的方法
	r.push_back(2);
	r.push_back(7);
	//vector 容器提供了 begin()方法 返回指向第一個元素的迭代器
	//vector 容器提供了 end()方法 返回指向最后一個元素下一個位置的迭代器
	vector<int>::iterator reg = r.begin();
	vector<int>::iterator ina = r.end();//這是一種隨機訪問類型的迭代器
	while (reg != ina) {
		cout << *reg << " ";
		reg++;
	}
	cout << endl;

	//算法 count 算法 用于統(tǒng)計元素的個數(shù)
	int total = count(reg, ina, 5);
	cout << "total:" << total << endl;
}

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

STL 容器不單單可以存儲基礎(chǔ)數(shù)據(jù)類型,也可以存儲類對象

class Regina {
public:
	Regina(int a) : age(a) {};
	int age;
	~Regina(){};
};
vector<Regina>r;
Regina r1(1), r2(2), r3(7);
r.push_back(r1);
r.push_back(r2);
r.push_back(r3);
vector<Regina>::iterator pStart = r.begin();
vector<Regina>::iterator pEnd = r.end();
while (pStart != pEnd) {
	cout << "pStart->age: " << pStart->age << " ";
	pStart++;
}
cout << endl;

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

還可以存儲類的指針

在 C++ 中,當(dāng)我們使用迭代器遍歷容器時,迭代器本身是一個指向容器中元素的對象,而不是實際的元素本身。因此,為了訪問容器中存儲的元素,我們需要通過解引用操作符 * 來獲取迭代器指向的實隕對象.具體的vector怎么用在下一篇

vector<Regina*> v;//存儲 Teacher 類型指針
Regina* r1 = new Regina(1);
Regina* r2 = new Regina(2);
Regina* r3 = new Regina(7);
v.push_back(r1);
v.push_back(r2);
v.push_back(r3);
//拿到容器迭代器
vector<Regina*>::iterator pStart = v.begin();
vector<Regina*>::iterator pEnd = v.end();
//通過迭代器遍歷
while (pStart != pEnd) {
	cout << (*pStart)->age << " ";
	pStart++;
}
cout << endl;

常用容器講解

string

C風(fēng)格字符串(以空字符結(jié)尾的字符數(shù)組)太過復(fù)雜難于掌握,不適合大程序的開發(fā),所以C++標(biāo)準(zhǔn)庫定義了一種string類,定義在頭文件

String和c風(fēng)格字符串對比:

  • Char是一個指針,String是一個類

    string封裝了char,管理這個字符串,是一個char型的容器。

  • String封裝了很多實用的成員方法

    查找find,拷貝copy,刪除delete 替換replace,插入insert

  • 不用考慮內(nèi)存釋放和越界

    string管理char*所分配的內(nèi)存。每一次string的復(fù)制,取值都由string類負(fù)責(zé)維護(hù),不用擔(dān)心復(fù)制越界和取值越界等。

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

string regina1("regina");
string regina2(7, '$');
string regina3(regina1);
cout << regina1 << endl;  // 輸出 "regina"
cout << regina2 << endl;  // 輸出 "$$$$$$$"
cout << regina3 << endl;  // 輸出 "regina"
regina1 += "baby";
cout << regina1 << endl;  // 輸出 "reginababy"
string regina4 = regina1 + regina3;
char arr[] = "arr loop";
string regina5(arr, 2);
string regina6(arr + 1, arr + 3);
cout << regina1 << endl;  // 輸出 "reginababy"
cout << regina4 << endl;  // 輸出 "reginababyregina"
cout << regina5 << endl;  // 輸出 "ar"
cout << regina6 << endl;  // 輸出 "rr"
string regina7(&regina4[1], &regina4[4]);
string regina8(regina4, 1, 5);
cout << regina7 << endl;  // 輸出 "egi"
cout << regina8 << endl;  // 輸出 "egina"

基本賦值操作

string& operator=(const char* s):將 char* 類型的字符串賦值給當(dāng)前的字符串。
string& operator=(const string& s):將另一個字符串對象 s 賦值給當(dāng)前的字符串。
string& operator=(char c):將單個字符 c 賦值給當(dāng)前的字符串。
string& assign(const char* s):將 char* 類型的字符串 s 賦值給當(dāng)前的字符串。
string& assign(const char* s, int n):將 char* 類型的字符串 s 的前 n 個字符賦值給當(dāng)前的字符串。
string& assign(const string& s):將另一個字符串對象 s 賦值給當(dāng)前的字符串。
string& assign(int n, char c):使用 n 個字符 c 來賦值給當(dāng)前的字符串。
string& assign(const string& s, int start, int n):將字符串 s 從位置 start 開始的 n 個字符賦值給當(dāng)前的字符串。
	string s1, s2, s3;

	// 使用賦值操作符重載將 char* 類型的字符串賦值給當(dāng)前的字符串
	s1 = "regina, baby!";
	cout << "s1: " << s1 << endl;

	// 使用賦值操作符重載將另一個字符串對象賦值給當(dāng)前的字符串
	s2 = s1;
	cout << "s2: " << s2 << endl;

	// 使用 assign() 成員函數(shù)將 char* 類型的字符串賦值給當(dāng)前的字符串
	s3.assign("regina", 4);
	cout << "s3: " << s3 << endl;

	// 使用 assign() 成員函數(shù)將另一個字符串對象賦值給當(dāng)前的字符串
	s1.assign(s3);
	cout << "s1: " << s1 << endl;

	// 使用 assign() 成員函數(shù)使用 n 個字符 c 賦值給當(dāng)前的字符串
	s2.assign(8, '*');
	cout << "s2: " << s2 << endl;

	// 使用 assign() 成員函數(shù)將字符串 s 的子串賦值給當(dāng)前的字符串
	string s4 = "regina, baby!";
	string s5;
	s5.assign(s4, 7, 5); // 從索引 7 開始的 5 個字符
	cout << "s5: " << s5 << endl;

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

存取字符串

  1. char& operator[](int n):通過重載 [] 運算符來獲取字符串中索引為 n 的字符。這種方式不進(jìn)行邊界檢查,如果訪問超出字符串范圍的位置,可能導(dǎo)致未定義行為。
  2. char& at(int n):通過 at 方法來獲取字符串中索引為 n 的字符。與使用 operator[] 不同的是,at 方法會進(jìn)行邊界檢查,如果訪問超出字符串范圍的位置,會拋出 out_of_range 異常。
string r = "regina";
// 使用 operator[] 獲取字符
cout << "Character at index 7 (using operator[]): " << r[5] << endl;

// 使用 at 方法獲取字符
try {
	cout << "Character at index 3 (using at): " << r.at(3) << endl;
	cout << "Character at index 13 (using at): " << r.at(13) << endl;
}
catch (const out_of_range& e) {
	cerr << "Exception caught: " << e.what() << endl;
}

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

cerr 是 C++ 中的一個輸出流對象,它與標(biāo)準(zhǔn)錯誤流 (stderr) 相關(guān)聯(lián)。與標(biāo)準(zhǔn)輸出流 (cout) 不同,標(biāo)準(zhǔn)錯誤流用于輸出程序中的錯誤消息和診斷信息。

cerr 對象通常會直接將消息輸出到終端或日志文件,而不會進(jìn)行緩沖操作。這意味著錯誤消息會立即顯示在終端上,而不需要等待緩沖區(qū)刷新。因此,cerr 在處理錯誤和調(diào)試信息時非常有用。

拼接字符串

string& operator+=(const string& str), string& operator+=(const char* str), string& operator+=(const char c):這些是重載 += 操作符的方法,用于將另一個字符串、C風(fēng)格字符串或字符連接到當(dāng)前字符串的末尾。

string& append(const char *s):將 C 風(fēng)格的字符串 s 追加到當(dāng)前字符串的末尾。

string& append(const char *s, int n):將 C 風(fēng)格的字符串 s 的前 n 個字符追加到當(dāng)前字符串的末尾。

string& append(const string& s):將字符串 s 追加到當(dāng)前字符串的末尾,與 operator+= 的功能類似。

string& append(const string& s, int pos, int n):將字符串 s 中從索引 pos 開始的 n 個字符追加到當(dāng)前字符串的末尾。

string& append(int n, char c):在當(dāng)前字符串的末尾添加 n 個字符 c。
string str = "Hello";

    // 使用 += 操作符連接字符串
    str += ", world!";
    cout << "After +=: " << str << endl;

    // 使用 append(const char*) 連接字符串
    str.append(" This is a test.");
    cout << "After append(const char*): " << str << endl;

    // 使用 append(const string&) 連接字符串
    string additional = " Have a nice day!";
    str.append(additional);
    cout << "After append(const string&): " << str << endl;

    // 使用 append(const char*, int) 連接部分字符串
    str.append(" Testing", 4); // 添加 " Test"
    cout << "After append(const char*, int): " << str << endl;

    // 使用 append(int, char) 添加字符
    str.append(3, '!'); // 添加 "!!!"
    cout << "After append(int, char): " << str << endl;

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

查找和替換

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

	string words = "regina baby is my sM baby";
	int pos = words.find("baby");
	cout << pos << '\n';
	pos = words.find("sM", 4, 2);
	cout << pos << '\n';
	pos = words.rfind("baby");
	cout << pos << '\n';

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

比較操作

/*
compare函數(shù)在>時返回 1,<時返回 -1,==時返回 0。
比較區(qū)分大小寫,比較時參考字典順序,排越前面的越小。
大寫的A比小寫的a小。
*/
int compare(const string& s) const;//與字符串s比較
int compare(const char *s) const;//與字符串s比較

	string s1 = "regina";
	string s2 = "ivanlee";
	cout << "s1.compare(s2): " << s1.compare(s2) << "\n";
	const char* cs2 = "leeivan";
	cout << "s2.compare(cs2): " << s2.compare(cs2) << "\n";

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

插入和刪除

string& insert(int pos, constchar* s); //插入字符串
string& insert(int pos, conststring& str); //插入字符串
string& insert(int pos, int n, char c);//在指定位置插入n個字符c
string& erase(int pos, int n = npos);//刪除從Pos開始的n個字符 
	string s = "hello regina";
	s.insert(5, "beautiful");
	cout << s << "\n";
	s.insert(s.length(), 2, '!'); //單引號
	cout << s << "\n";
	s.erase(5, 3);
	cout << s << "\n";

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

string和c-style字符串轉(zhuǎn)換

	string s = "regina";
	const char* c = s.c_str();//返回的是一個指向常量字符的指針
	cout << "s.c_str(): " << typeid(c).name() << endl;
	const char* c1 = "regina";
	string s1(s);
	cout << "string s1(s); " << typeid(s1).name() << endl;

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)

在c++中存在一個從const char*到string的隱式類型轉(zhuǎn)換,卻不存在從一個string對象到C_string的自動類型轉(zhuǎn)換。對于string類型的字符串,可以通過c_str()函數(shù)返回string對象對應(yīng)的C_string.

通常,程序員在整個程序中應(yīng)堅持使用string類對象,直到必須將內(nèi)容轉(zhuǎn)化為char*時才將其轉(zhuǎn)換為C_string.

為了修改string字符串的內(nèi)容,下標(biāo)操作符[]和at都會返回字符的引用。但當(dāng)字符串的內(nèi)存被重新分配之后,可能發(fā)生錯誤.

自動擴容

在 C++ 的標(biāo)準(zhǔn)庫中,std::string 類具有自動調(diào)整大小的功能。當(dāng)你向 std::string 對象添加字符時,如果當(dāng)前容量不足以存儲新的字符,std::string 會自動重新分配內(nèi)存以擴展容量,從而確??梢源鎯π碌淖址⒈3肿址挠行?。

這種自動調(diào)整大小的過程是由 std::string 類內(nèi)部管理的,開發(fā)者無需手動管理字符串的內(nèi)存大小。當(dāng)添加字符導(dǎo)致字符串超出當(dāng)前容量時,std::string 會選擇一個新的更大的內(nèi)存塊,將舊數(shù)據(jù)復(fù)制到新的內(nèi)存塊中,并釋放舊的內(nèi)存塊。

這種自動調(diào)整大小的機制使得 std::string 更加方便和易用,開發(fā)者可以專注于操作字符串內(nèi)容而不必?fù)?dān)心內(nèi)存管理的細(xì)節(jié)。

	std::string str = "regina";
	std::cout << "Initial capacity: " << str.capacity() << std::endl;
	// 添加字符,觀察容量的變化
	for (char c = 'a'; c <= 'z'; ++c) {
		str.push_back(c);
		std::cout << "Capacity after adding '" << c << "': " << str.capacity() << std::endl;
	}

std::string 類提供了 capacity() 方法,用于返回當(dāng)前字符串對象的容量大小。容量表示為當(dāng)前存儲空間的大小,它可能大于等于字符串的長度,因為 std::string 可能會分配比實際字符串長度更多的內(nèi)存,以便進(jìn)行后續(xù)的添加操作而不需要頻繁地重新分配內(nèi)存。

通常情況下,當(dāng)你向 std::string 對象添加字符時,如果當(dāng)前的容量不足以存儲新的字符,std::string 會自動重新分配內(nèi)存以擴展容量,從而確??梢源鎯π碌淖址⒈3肿址挠行?。這樣的設(shè)計可以提高性能,因為它避免了頻繁的內(nèi)存分配和釋放操作。

C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)文章來源地址http://www.zghlxwxcb.cn/news/detail-837864.html

到了這里,關(guān)于C++STL學(xué)習(xí)第一篇(什么是STL以及string的各種功能用法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【C++ STL】string類最全解析(什么是string?string類的常用接口有哪些?)

    【C++ STL】string類最全解析(什么是string?string類的常用接口有哪些?)

    目錄 一、前言 ?二、什么是 string ? ??? string 類的基本概念 ?? string 類與 char * 的區(qū)別? ??? string 類的作用 ??? 總結(jié) ?三、string 的常用接口詳解 ???string 類對象的默認(rèn)成員函數(shù) ① 構(gòu)造函數(shù)(初始化) ② 賦值重載(初始化) ??string 類對象的訪問及遍歷操作 ① operator[ ]

    2024年04月17日
    瀏覽(30)
  • 干翻Dubbo系列第一篇:Dubbo是什么?

    干翻Dubbo系列第一篇:Dubbo是什么?

    早期Dubbo的定位基于JAVA的高性能,輕量級RPC框架 [high-performance, lightweight,Java-based RPC framework] SOA[Service-Oriented Architecture 面向服務(wù)的架構(gòu)] = RPC+服務(wù)治理,服務(wù)治理包括注冊中心、配置中心等等。 2018年阿里巴巴把這個框架捐獻(xiàn)給了 Apache 基金會,正式更名為Apache Dubbo最新版本為

    2024年02月09日
    瀏覽(22)
  • 【Spring內(nèi)容介紹 | 第一篇】什么是事務(wù)管理

    【Spring內(nèi)容介紹 | 第一篇】什么是事務(wù)管理

    ????????當(dāng)今軟件開發(fā)行業(yè)中,事務(wù)管理是一個不可或缺的重要組成部分。隨著企業(yè)應(yīng)用的復(fù)雜性和數(shù)據(jù)交互的增加,確保數(shù)據(jù)的一致性和完整性變得越來越關(guān)鍵。Spring框架作為一種全功能的應(yīng)用程序開發(fā)框架,為我們提供了強大而靈活的事務(wù)管理功能。在這篇文章中,我

    2024年02月03日
    瀏覽(22)
  • c++學(xué)習(xí):STL之string類初識

    c++學(xué)習(xí):STL之string類初識

    目錄 1.關(guān)于STL 1.什么是STL 2.STL的六的組件 2.關(guān)于string類的學(xué)習(xí) 1.為何學(xué)習(xí)string類 2.何為string類 3.string類對象的構(gòu)造 4.容量操作 ?5.元素訪問的操作 6.迭代器(Iterators) 7.修改類的操作 ?8.字符串操作 STL(standard template library-標(biāo)準(zhǔn)模板庫):是c++標(biāo)準(zhǔn)庫的重要組成部分,不僅是一

    2024年02月03日
    瀏覽(87)
  • 【C++初階】STL之學(xué)習(xí)string的用法

    【C++初階】STL之學(xué)習(xí)string的用法

    STL是C++的標(biāo)準(zhǔn)模板庫 ,里面包含了許多 算法和數(shù)據(jù)結(jié)構(gòu) ,例如我們熟悉的順序表、鏈表、棧和隊列以及一些常見的算法等等,編程者想使用這些就可以直接從庫中調(diào)用,不必再自己造輪子了。 下面為STL內(nèi)容的一張圖: 接下來,我們要學(xué)習(xí)STL中的string。 string 是C++的一個類模

    2024年02月04日
    瀏覽(20)
  • 架構(gòu)師成長之路Redis第一篇|Redis 安裝介紹以及內(nèi)存分配器jemalloc

    架構(gòu)師成長之路Redis第一篇|Redis 安裝介紹以及內(nèi)存分配器jemalloc

    Redis官網(wǎng):https://redis.io/download/ 下載安裝二進(jìn)制文件 可下載安裝最新版Redis7.2.0,或者可選版本6.x 我這里下載6.2.13和7.2最新版本,后面我們都是安裝6.2.13版本的信息進(jìn)行講解 二進(jìn)制文件安裝步驟 安裝前期準(zhǔn)備: 安裝gcc yum install gcc 壓縮文件 tar -xzf redis6.2.13.tar.gz 編譯 cd redis-x

    2024年02月11日
    瀏覽(26)
  • ReactHook學(xué)習(xí)(第一篇-N)

    ReactHook學(xué)習(xí)(第一篇-N)

    Hook 是 React 16.8 的新增特性。它可以讓你在不編寫 class 的情況下使用 state 以及其他的 React 特性。 在我們繼續(xù)之前,請記住 Hook 是: 完全可選的。 你無需重寫任何已有代碼就可以在一些組件中嘗試 Hook。但是如果你不想,你不必現(xiàn)在就去學(xué)習(xí)或使用 Hook。 100% 向后兼容的。

    2023年04月26日
    瀏覽(20)
  • cocos creator 學(xué)習(xí)第一篇

    cocos creator 學(xué)習(xí)第一篇

    unity 編程語言主要為c# 早期cocos2d 等用c++ 或者lua cocos creator 編程語言主要為js 所以cocos 適合h5 小游戲,而且跨平臺性更好,unity性能可能更好 cocos creator簡介 cocos2d-python cocos 1.x 2d cocos 2.x 也是2d 為了不影響2d版本,單獨出了3d版本,只有一個版本 cocos 3.x 在cocos 3d基礎(chǔ)上 又將2d加

    2024年02月04日
    瀏覽(21)
  • 【pygame學(xué)習(xí)+實戰(zhàn)】第一篇:游戲最小系統(tǒng)

    【pygame學(xué)習(xí)+實戰(zhàn)】第一篇:游戲最小系統(tǒng)

    14天學(xué)習(xí)訓(xùn)練營導(dǎo)師課程: 李寧《Python Pygame游戲開發(fā)入門與實戰(zhàn)》 李寧《計算機視覺OpenCV Python項目實戰(zhàn)》1 李寧《計算機視覺OpenCV Python項目實戰(zhàn)》2 李寧《計算機視覺OpenCV Python項目實戰(zhàn)》3 “我有一個夢想,那就是有生之年做出一款屬于自己的游戲?!?不知道屏幕前的你是

    2023年04月19日
    瀏覽(98)
  • 大數(shù)據(jù)筆記--Spark機器學(xué)習(xí)(第一篇)

    大數(shù)據(jù)筆記--Spark機器學(xué)習(xí)(第一篇)

    目錄 一、數(shù)據(jù)挖掘與機器學(xué)習(xí) 1、概念 2、人工智能 3、數(shù)據(jù)挖掘體系 二、機器學(xué)習(xí) 1、什么是機器學(xué)習(xí) 2、機器學(xué)習(xí)的應(yīng)用 3、實現(xiàn)機器學(xué)習(xí)算法的工具與技術(shù)框架 三、Spark MLlib介紹 1、簡介 2、MLlib基本數(shù)據(jù)類型 Ⅰ、概述 Ⅱ、本地向量 Ⅲ、向量標(biāo)簽的使用 Ⅳ、本地矩陣 Ⅴ、

    2024年02月07日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包