C 學習筆記 STL常用容器 string

2021-10-03 09:13:47 字數 3537 閱讀 1543

string是c++風格的字串,其本質上是乙個類,內部封裝了很多成員函式。

string和char *的區別:

1.char *是乙個指標;

2.string是乙個類,內部封裝 char*,是乙個char*型的容器。

string建構函式:

函式原型:

//    建立乙個空字串

string();

// 使用字串s初始化

string(const char* s);

// 使用string物件初始化另乙個string物件

string(const string& str);

// 使用n個字元c初始化

string(int n,char c);

例子:

#include #include using namespace std;

void test01(){

string s1;

cout<<"s1="<string賦值操作:

函式原型:

// char*型別字串,賦值給當前字串

string& operator=(const char* s);

// 字串s賦給當前字串

string* operator=(const string &s);

// 把字元c賦給當前字串

string& operator=(char c);

// char*型別字串,賦值給當前字串

string& assign(const char* s);

// 把字串s的前n個字元賦給當前字串

string& assign(const char* s,int n);

// 字串s賦給當前字串

string& assign(const string &s);

// 把n個字元c賦給當前字串

string& assign(int n,char c);

例子:

#include #include using namespace std;

void test01(){

string str1;

str1="hello";

cout<<"str1="<string字串拼接:

實現在字串末尾拼接字串。

函式原型:

string& operator+=(const char* str);

string& operator+=(const char c);

string& operator+=(const string& str);

//把字串s的前n個字元連線到當前字串結尾

//字串s中從pos開始的n個字元連線到字串結尾

例子:#include #include using namespace std;

void test01(){

string str1="hello";

str1+=" world";

cout<<"str1="<字串查詢和替換:

查詢時找到返回字元的位置,找不到返回-1。

函式原型:

//查詢str第一次出現位置,從pos開始查詢

int find(const string& str, int pos = 0) const;

//查詢s第一次出現位置,從pos開始查詢

int find(const char* s, int pos = 0) const;

//從pos位置查詢s的前n個字元第一次位置

int find(const char* s, int pos, int n) const;

//查詢字元c第一次出現位置

int find(const char c, int pos = 0) const;

//查詢str最後一次位置,從pos開始查詢

int rfind(const string& str, int pos = npos) const;

//查詢s最後一次出現位置,從pos開始查詢

int rfind(const char* s, int pos = npos) const;

//從pos查詢s的前n個字元最後一次位置

int rfind(const char* s, int pos, int n) const;

//查詢字元c最後一次出現位置

int rfind(const char c, int pos = 0) const;

//替換從pos開始n個字元為字串str

string& replace(int pos, int n, const string& str);

//替換從pos開始的n個字元為字串s

string& replace(int pos, int n,const char* s);

string字串比較:

比較方式:

按照字元的ascii碼進行對比

==  返回 0;

>    返回 1;

<    返回-1.

函式原型:

//與字串s比較

int compare(const string &s) const;

//與字串s比較

int compare(const char *s) const;

字串訪問:

函式原型:

//通過方式取字元

char& operator(int n);

//通過at方法獲取字元

char& at(int n);

string插入和刪除:

起始下標從0開始。

函式原型:

string& insert(int pos, const char* s);          

string& insert(int pos, const string& str);

//在指定位置插入n個字元c

string& insert(int pos, int n, char c);

//刪除從pos開始的n個字元

string& erase(int pos, int n = npos);

例子:

#include #include using namespace std;

void test01(){

string str1="hello";

str1.insert(1,"000");

cout<<"str1="<string子串:

函式原型:

//返回由pos開始的n個字元組成的字串

string substr(int pos = 0, int n = npos) const;

C 學習筆記 STL常用容器 list

list容器的功能 將資料進行鏈式儲存。stl中的鍊錶是乙個雙向迴圈鍊錶。list的優點 採用動態儲存分配,不會造成記憶體浪費和溢位 執行插入和刪除方便,修改指標的指向即可,不需要移動大量元素。list的缺點 空間 指標域 和時間 遍歷 耗費較大。list插入和刪除元素不會造成原有的迭代器的失效。l...

C 學習筆記 STL常用容器 set和map

set 所有元素在插入時自動排序,底層結構用二叉樹實現。set和multiset的區別 set不允許容器中有重複的元素,multiset允許容器中有重複的元素。set構造和賦值 構造 預設建構函式 setst 拷貝建構函式 set const set st 賦值 過載等號操作符 set operat...

C 學習 STL容器

vector 向量 線性容器 用標準模板,記得加上相應的標頭檔案 include include using namespace std int main 設定向量容量 初始化 v1 0 8 v1 1 8 v1 2 8 宣告迭代器 標準他屬於那個模板 vector iterator v1 iter ...