欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中的erase()函數(shù)用法小結(jié)

 更新時(shí)間:2025年03月13日 09:34:49   作者:奶茶戒斷高手  
本文主要介紹了C++中的erase()函數(shù)用法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在 C++ 中,erase() 是 std::string 和 std::vector 等容器中的成員函數(shù),用于刪除容器中的元素。erase可以刪去容器中指定位置的元素,容器的size(大?。淖?,但是容器的容量不變。

常用用法:

1. 刪除指定位置的單個(gè)元素

str.erase(pos,1)//刪除字符串pos位置的單個(gè)字符
vec.erase(vec.begin()+pos)//刪除vector容器中pos位置的單個(gè)字符

2. 刪除指定范圍內(nèi)的元素

str.erase(firstpos, n);//字符串,從位置firstpos開始,刪除n個(gè)字符
vec.erase(vec.begin() + firstpos, vec.begin() + lastpos);//刪除指定范圍為 [first, last)

注意:在字符串中str.erase(pos)是刪除str[pos]及之后所有字符元素,并不是只刪除str[pos]。

下面詳細(xì)描述不同容器中的erase()函數(shù)

string中的erase()

1. 刪除指定位置的單個(gè)字符

2. 刪除某個(gè)字符(刪除第一個(gè)出現(xiàn)的字符)

3. 刪除指定位置到結(jié)尾的所有字符

4. 刪除指定范圍字符

5. 刪除整個(gè)字符串字符

示例代碼:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello, World!";
    
    //1. 刪除指定位置的單個(gè)字符 
    str.erase(5, 1);// 刪除索引為 5 的字符(即 ',')
    cout <<"erase(pos,1):"<< str << endl;  // 輸出:Hello World!
    
    //2. 刪除第一個(gè)出現(xiàn)的字符 'o'
    string str1 = "Hello, World!";
    size_t pos = str.find('o');
    if (pos != string::npos) {
        str1.erase(pos, 1);  // 刪除找到的字符
    }
    cout <<"erase('o'pos,1):"<< str1 << endl;  // 輸出:Hell, World!
    
    //3. 刪除指定位置到結(jié)尾的所有字符
    string str2 = "Hello, World!";
    str2.erase(5); // 從索引 5 開始,刪除所有字符
    cout <<"erase(pos):"<< str2 << endl;  // 輸出:Hello
    
    //4. 刪除指定范圍字符
    string str3 = "Hello, World!";
    str3.erase(0, 5);  // 從位置 0 開始,刪除 5 個(gè)字符
    cout <<"erase(pos,n):"<< str3<< endl;  // 輸出:, World!
    
    //5. 刪除整個(gè)字符串字符
    string str4 = "Hello, World!";
    str4.erase(0, str4.length());// 刪除從第 0 個(gè)字符開始的所有字符
    cout <<"erase(0, str.length():"<< str4 << endl;  // 輸出:空字符串
	 
    return 0;
}

vector中的erase()

在 std::vector 中,erase() 用于刪除指定位置的元素或元素范圍。

1. 刪除單個(gè)元素

2. 刪除指定范圍的元素

3. 刪除所有元素

示例代碼:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
	//1. 刪除指定位置的單個(gè)元素 
    vector<int> vec = {1, 2, 3, 4, 5};
    vec.erase(vec.begin() + 2);// 刪除位置為 2 的元素(即 3)
    cout << "erase(vec.begin()+pos):";
    for (int val : vec) {
        cout<<val << " ";  // 輸出:1 2 4 5
    }
    cout<<endl; 
    
    //2. 刪除指定范圍的元素
    vector<int> vec1 = {1, 2, 3, 4, 5};
    vec1.erase(vec1.begin() + 1, vec1.begin() + 4);// 刪除索引 1 到 3 范圍的元素(即 2, 3, 4)
    cout << "erase[1,4):";
    for (int val : vec1) {
        cout<<val << " ";  // 輸出:1 5
    }
    cout<<endl; 
    
    //3. 刪除所有元素
    vector<int> vec2 = {1, 2, 3, 4, 5};
    vec2.erase(vec2.begin(), vec2.end());
    cout << "Size of vector: " << vec2.size() << endl;  // 輸出:Size of vector: 0
    
	 
    return 0;
}

注意一種錯誤用法:不能直接erase要刪除的字母,必需先找到它的位置

另外在list中也可以使用erase()函數(shù),用于刪除指定位置的元素或元素范圍。由于list 是雙向鏈表,刪除操作效率較高(不需要移動元素,只需修改指針)。由于使用較少,在這里不做解釋。

到此這篇關(guān)于C++中的erase()函數(shù)用法小結(jié)的文章就介紹到這了,更多相關(guān)C++ erase()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • protobuf c++編程筆記

    protobuf c++編程筆記

    這篇文章主要介紹了Protobuf的c++編程筆記,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 解析C++中四種強(qiáng)制類型轉(zhuǎn)換的區(qū)別詳解

    解析C++中四種強(qiáng)制類型轉(zhuǎn)換的區(qū)別詳解

    本篇文章是對C++中四種強(qiáng)制類型轉(zhuǎn)換的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言深入講解鏈表的使用

    C語言深入講解鏈表的使用

    當(dāng)我們在寫一段代碼時(shí),如果要頻繁的在一塊區(qū)域進(jìn)行插入或者刪除操作時(shí),會發(fā)現(xiàn)用數(shù)組實(shí)現(xiàn)會比較復(fù)雜,這時(shí)候我們就要用另一種數(shù)據(jù)結(jié)構(gòu),鏈表來實(shí)現(xiàn)
    2022-05-05
  • C語言實(shí)現(xiàn)簡單三子棋游戲

    C語言實(shí)現(xiàn)簡單三子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單三子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • C語言實(shí)現(xiàn)二叉樹層次遍歷介紹

    C語言實(shí)現(xiàn)二叉樹層次遍歷介紹

    大家好,本篇文章主要講的是C語言實(shí)現(xiàn)二叉樹層次遍歷介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • C語言版學(xué)生成績管理系統(tǒng)

    C語言版學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言版學(xué)生成績管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C/C++實(shí)現(xiàn)的MD5哈希校驗(yàn)的示例代碼

    C/C++實(shí)現(xiàn)的MD5哈希校驗(yàn)的示例代碼

    MD5算法是一種廣泛使用的 Hash 算法,常用于確保信息傳輸?shù)耐暾耘c一致性,本文主要介紹了C/C++實(shí)現(xiàn)的MD5哈希校驗(yàn)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • C++實(shí)現(xiàn)二叉樹非遞歸遍歷方法實(shí)例總結(jié)

    C++實(shí)現(xiàn)二叉樹非遞歸遍歷方法實(shí)例總結(jié)

    這篇文章主要介紹了C++實(shí)現(xiàn)二叉樹非遞歸遍歷方法實(shí)例總結(jié),是算法設(shè)計(jì)中比較經(jīng)典的一個(gè)遍歷算法,需要的朋友可以參考下
    2014-08-08
  • C語言之復(fù)雜鏈表的復(fù)制詳解

    C語言之復(fù)雜鏈表的復(fù)制詳解

    這篇文章主要為大家詳細(xì)介紹了C語言之復(fù)雜鏈表的復(fù)制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 淺談C++中thread庫join和detach的區(qū)別

    淺談C++中thread庫join和detach的區(qū)別

    這篇文章主要為大家介紹了C++中thread庫join和detach的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11

最新評論