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

【C++】 vector <string> 的超詳細(xì)解析?。?!

這篇具有很好參考價(jià)值的文章主要介紹了【C++】 vector <string> 的超詳細(xì)解析?。?!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、前言

二、 vector <string>? 的個(gè)人理解和總結(jié)

三、vector <string>? 的初始化

四、vector <string>?的輸入 \ 輸出

?五、vector <string>? 中的注意事項(xiàng)

?六、常考面試題

七、共勉?


一、前言

? ? ? ? 在【C++】中,vector?是一個(gè)動(dòng)態(tài)數(shù)組,它可以根據(jù)需要自動(dòng)調(diào)整自身的大小。同樣 vector<string> 表示一個(gè)由 string 組成的 vector 。string 是一個(gè)字符序列,可以理解為文本字符串。但是在平時(shí)刷 leetcode 的時(shí)候,還是搞不清楚 vector<string>的用法 ,所以通過(guò)查閱資料,將其記錄下來(lái)。
? ? ? ?如果有老鐵還不清楚 vector 的基本用法,可以看這篇文章:詳解vector

二、 vector <string> 的個(gè)人理解和總結(jié)

? ? ? 標(biāo)準(zhǔn)庫(kù)類(lèi)型 vector 表示對(duì)象的集合,其內(nèi)所有的對(duì)象類(lèi)型都相同。使用 vector 必須包含頭文件(#include <vector>)。

? ? ? 個(gè)人理解:vector 是一個(gè)類(lèi)模板,編譯器根據(jù)模板創(chuàng)建類(lèi)或函數(shù),vector<string> 就是根據(jù)模板創(chuàng)建了若干 string 對(duì)象,而 string 本身可以包含字符串,字符串可以視為若干個(gè)字符,即,vector<string> 可以視為一個(gè)a [ ][ ] 數(shù)組。可以使用輸出數(shù)組的方式來(lái)輸出vector<string> 對(duì)象內(nèi)的內(nèi)容。

三、vector <string> 的初始化

下面是如何創(chuàng)建?vector<string>?的一些例子:?

  1. 創(chuàng)建一個(gè)空的?vector<string>
    ?
    vector<string> vec1;
    
  2. 創(chuàng)建包含5個(gè)空字符串的?vector<string>?
    ?
    vector<string> vec2(5);
    
  3. ?創(chuàng)建包含5個(gè)?"abc"?的?vector<string>
    ?
    vector<string> vec3(5, "abc");
    
  4. 使用初始化列表創(chuàng)建?vector<string>?
    ?
    vector<string> vec4 = {"abc", "def", "ghi"};
    

四、vector <string> 的輸入 \ 輸出

代碼范例:從cin讀入一組詞,并輸出這組詞的大寫(xiě),每個(gè)詞一行。

  • 說(shuō)明:按圖所示的格式輸入數(shù)據(jù),并以Ctrl+Z結(jié)尾,回車(chē)出結(jié)果?
int main()
{
    string str;
    // 定義一個(gè)空的 word
    vector<string> word;
    // 開(kāi)始向 vector 動(dòng)態(tài)數(shù)組中 輸入字符串
    while (getline(cin,str))
    {
        word.push_back(str);      //push_back()用于添加元素到word的尾端
    }

    // 第一個(gè) for表示 vector 中 有幾個(gè)字符串
    for (int i = 0; i < word.size(); i++)
    {
        // 第二個(gè)for表示  一個(gè)字符串中有幾個(gè)字符
        for (int j = 0; j < word[i].length(); j++)
        {
            // 將每一個(gè)字符轉(zhuǎn)換為 大寫(xiě)字母
            word[i][j] = toupper(word[i][j]);
        }
    }

    // 輸出動(dòng)態(tài)數(shù)組  vector<string>
    for (int i = 0; i < word.size(); i++)
    {
        cout << word[i] << endl;
    }

	return 0;
}

vector<string>,C++,c++,開(kāi)發(fā)語(yǔ)言,算法,面試,c語(yǔ)言

?五、vector <string> 中的注意事項(xiàng)

?在 vector<string> aa[0].size()a.size() 有什么區(qū)別?

?實(shí)例代碼:

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
	vector<string> a ={"aasd7777","bbasd","asdal","dasdas",
	/*第四個(gè)元素:"a"*/
	 "adsajsadada","sda","dsa"};
	int b = a[0].size();//計(jì)算第1個(gè)位置上總共多長(zhǎng)  vector數(shù)組從0開(kāi)始存放第一個(gè)元素
	int c = a.size();//計(jì)算vector中總共多長(zhǎng)
	int d = a[6].size();//計(jì)算第7個(gè)位置
	cout << a[3][2] << endl;//s
	cout << a[4][4] << endl;//j
	//超過(guò)第四個(gè)元數(shù)的長(zhǎng)度 報(bào)錯(cuò)  subscript out of the range 
	cout << b<<endl;//8
	cout << c << endl;//7
	cout << d << endl;//3
	
	return 0;
}

?結(jié)論:

1、a[0].size 計(jì)算存放在 vector 中第一個(gè)元素有多長(zhǎng)
2、a.size 計(jì)算存放了多少個(gè)元數(shù)在vector 中
3、可以將 vector<string> a 看作是二維數(shù)組
4、a[3][2]= s ?a[4][4]= j
a[行][列]?
行->a.size()
列->a[某行].size()

?六、常考面試題

?題目:最長(zhǎng)公共前綴
?鏈接:14. 最長(zhǎng)公共前綴

vector<string>,C++,c++,開(kāi)發(fā)語(yǔ)言,算法,面試,c語(yǔ)言

方法一:?

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) 
    {
        // 表示字符串索引
        int j = 0;
        string Countstr="";
        // 進(jìn)入無(wú)限循環(huán)
        while(1)
        {
            // 以第一個(gè)字符串的 j位置為基準(zhǔn)
             char c = strs[0][j];
             for(int i =0;i<strs.size();i++)
             {
                // 不與基準(zhǔn)相同或某一字符串結(jié)束
                if(strs[i][j]!=c || j==strs[i].size())
                {
                    return Countstr;
                }
             }
             Countstr+=c;
             j++;
        }
        return Countstr;
    }
};

方法二:?

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) 
    {
        string result="";
        if(strs.empty()) 
        return result;
        // 按照字典順序排序
        sort(strs.begin(),strs.end());

        string start = strs.front();
        string en = strs.back();
        int size = min(start.size(),en.size());
        int len;
        for(len = 0;len<size;len++)
        {
            if(start[len]!=en[len])
            {
                break;
            }
        }

        string res;
        res = start.substr(0,len);
        return res;

    }
};

七、共勉?

以下就是我對(duì)?vector <string>?的理解,如果有不懂和發(fā)現(xiàn)問(wèn)題的小伙伴,請(qǐng)?jiān)谠u(píng)論區(qū)說(shuō)出來(lái)哦

同時(shí)我還會(huì)繼續(xù)更新對(duì)C++? vector 二維數(shù)組 的理解,請(qǐng)持續(xù)關(guān)注我哦!!

vector<string>,C++,c++,開(kāi)發(fā)語(yǔ)言,算法,面試,c語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-855224.html

到了這里,關(guān)于【C++】 vector <string> 的超詳細(xì)解析?。?!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【C++】反向迭代器的模擬實(shí)現(xiàn)通用(可運(yùn)用于vector,string,list等模擬容器)

    【C++】反向迭代器的模擬實(shí)現(xiàn)通用(可運(yùn)用于vector,string,list等模擬容器)

    ??博客主頁(yè): 主頁(yè) ??系列專(zhuān)欄: C++ ??感謝大家點(diǎn)贊??收藏?評(píng)論?? ??期待與大家一起進(jìn)步! 我們要寫(xiě)出一個(gè)通用的反向迭代器模擬而且在保證代碼簡(jiǎn)介不繁瑣的的情況下,一定程度上使用我們自己模擬的已經(jīng)封裝好的iterator迭代器可以簡(jiǎn)化許多步驟,首先我們要知

    2024年02月14日
    瀏覽(29)
  • 【初階C語(yǔ)言】關(guān)于scanf函數(shù)的超詳細(xì)介紹和多組輸入

    【初階C語(yǔ)言】關(guān)于scanf函數(shù)的超詳細(xì)介紹和多組輸入

    感謝各位可以光臨娥子的作品 ? 我們學(xué)習(xí)一個(gè)函數(shù),要圍繞三個(gè)點(diǎn) :1.函數(shù)是什么? 2.函數(shù)的用法? ?3.注意的細(xì)節(jié) 認(rèn)識(shí)一個(gè) 函數(shù),我們需要了解他的功能、返回值、接收的參數(shù)三個(gè)方面 函數(shù)原型 ?(1)功能介紹 ? ? ? ? ?scanf函數(shù)是一個(gè)輸入函數(shù) ,所以接收的參數(shù)類(lèi)型需

    2024年02月08日
    瀏覽(18)
  • 銀行家算法——C++實(shí)現(xiàn) [ 開(kāi)源代碼 + 詳細(xì)解析 ]

    銀行家算法——C++實(shí)現(xiàn) [ 開(kāi)源代碼 + 詳細(xì)解析 ]

    ? (原創(chuàng),純手敲,開(kāi)源免費(fèi),2021的最后一篇) Banker Algorithm ?? ◆ 說(shuō)明 :上述算法的核心實(shí)現(xiàn)采用了 “DFS + 回溯” 的方法,詳見(jiàn)后文的源代碼。另外,如果把 C++ 代碼里面的 “ p_num=1; ” 注釋掉,得到的是另一個(gè)結(jié)果。我雖然輸入是“0”,但代碼里后面我直接把 p_num 賦值

    2023年04月26日
    瀏覽(28)
  • C++ //練習(xí) 11.12 編寫(xiě)程序,讀入string和int的序列,將每個(gè)string和int存入一個(gè)pair中,pair保存在一個(gè)vector中。

    C++ //練習(xí) 11.12 編寫(xiě)程序,讀入string和int的序列,將每個(gè)string和int存入一個(gè)pair中,pair保存在一個(gè)vector中。

    練習(xí) 11.12 編寫(xiě)程序,讀入string和int的序列,將每個(gè)string和int存入一個(gè)pair中,pair保存在一個(gè)vector中。 環(huán)境:Linux Ubuntu(云服務(wù)器) 工具:vim ? 代碼塊 運(yùn)行結(jié)果顯示如下

    2024年04月10日
    瀏覽(21)
  • 【C++技能樹(shù)】Vector類(lèi)解析與模擬實(shí)現(xiàn)

    【C++技能樹(shù)】Vector類(lèi)解析與模擬實(shí)現(xiàn)

    Halo,這里是Ppeua。平時(shí)主要更新C語(yǔ)言,C++,數(shù)據(jù)結(jié)構(gòu)算法…感興趣就關(guān)注我bua! Vector 是一個(gè)動(dòng)態(tài)數(shù)組的容器,可以容納各種類(lèi)型的序列容器。稱(chēng)其為數(shù)組,意味著:**其也可以用下標(biāo)去訪問(wèn),類(lèi)似與之前的順序表。**所以, Vector分配空間的時(shí)候也不是說(shuō)用多少就分配多少,

    2024年02月16日
    瀏覽(16)
  • 進(jìn)程調(diào)度算法——C++實(shí)現(xiàn) [ FCFS,SJF,HPR,HRN + 開(kāi)源代碼 + 詳細(xì)解析 ]

    進(jìn)程調(diào)度算法——C++實(shí)現(xiàn) [ FCFS,SJF,HPR,HRN + 開(kāi)源代碼 + 詳細(xì)解析 ]

    ? (原創(chuàng),庫(kù)存,第100篇博客,紀(jì)念一下) (1) 先來(lái)先服務(wù)算法FCFS (First Come First Service):即調(diào)度程序只靠率一個(gè)參數(shù)———作業(yè)到達(dá)系統(tǒng)的時(shí)間,誰(shuí)先到就先給誰(shuí)提供服務(wù)。 (2) 最短作業(yè)優(yōu)先算法SJF (Shortest Job First):即我們也只考慮一個(gè)參數(shù)———進(jìn)程的CPU的執(zhí)行時(shí)間,計(jì)算量

    2023年04月13日
    瀏覽(14)
  • C++關(guān)于vector的詳細(xì)介紹

    C++關(guān)于vector的詳細(xì)介紹

    vector底層本質(zhì)就是一個(gè)順序表,它是一個(gè)可變長(zhǎng)的數(shù)組,采用連續(xù)存儲(chǔ)的空間來(lái)存儲(chǔ)數(shù)據(jù),它的元素類(lèi)型也可以是任意的內(nèi)置類(lèi)型或者自定義類(lèi)型。 第一種方式: 定義一個(gè)任意類(lèi)型的空vector 第二種方式: 定義一個(gè)任意類(lèi)型的vector,并用n個(gè)val來(lái)初始化vector 第三種方式: 定義

    2024年02月06日
    瀏覽(18)
  • C++中的vector的詳細(xì)用法

    目錄 C++中的vector的詳細(xì)用法 一、vector的介紹 二、存儲(chǔ)類(lèi)型 三、函數(shù) 四、vector二維數(shù)組兩種方法 五、vector中find()用法 六、vector的訪問(wèn) 七、vector中insert()函數(shù)增加元素操作 八、vector中erase()函數(shù)刪除元素操作 頭文件:#include vector 向量(Vector)是一個(gè)封裝了動(dòng)態(tài)大小數(shù)組的順

    2024年02月06日
    瀏覽(22)
  • 【華為OD機(jī)試真題 C++語(yǔ)言】68、矩陣擴(kuò)散 | 機(jī)試題+算法思路+考點(diǎn)+代碼解析

    ??個(gè)人博客首頁(yè): KJ.JK ? ??專(zhuān)欄介紹: 華為OD機(jī)試真題匯總,定期更新華為OD各個(gè)時(shí)間階段的機(jī)試真題,每日定時(shí)更新,本專(zhuān)欄將使用C++語(yǔ)言進(jìn)行更新解答,包含真題,思路分析,代碼參考,歡迎大家訂閱學(xué)習(xí) ??題目描述 存在一個(gè)m*n的二維數(shù)組,其成員取值范圍為0或1

    2024年02月16日
    瀏覽(20)
  • c++算法——vector

    ????????vector 是標(biāo)準(zhǔn)模板庫(kù)的一個(gè)容器,直接翻譯為“向量”,一般來(lái)成“可變長(zhǎng)數(shù)組”,也即“長(zhǎng)度會(huì)根據(jù)需要而變化的數(shù)組”。在競(jìng)賽中有些題目需要很大的很大的數(shù)組,而有些還用不上就需要用到 vector 。 ????????使用 vector 首先要加#include vector,當(dāng)然萬(wàn)能頭也

    2023年04月24日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包