第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

這樣為什么打出來是我看不懂的數(shù)字呢?

這樣為什么打出來是我看不懂的數(shù)字呢?

慕運(yùn)維8079593 2023-04-22 18:14:03
#include<iostream>#include<vector>using namespace std;void main(){int word,i;vector<int> text;for (word=1;word<10;word++)text.push_back(word);for (i=1;i<10;i++)cout<<text[i]<<"";}
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

因?yàn)橄聵?biāo)是從0開始的..所以最后一個(gè)是亂碼..
改成
for (i=0;i<9;i++)
cout<<text[i]<<" ";
就沒問題了..

查看完整回答
反對 回復(fù) 2023-04-25
?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊

vector之所以被認(rèn)為是一個(gè)容器,是因?yàn)樗軌蛳袢萜饕粯哟娣鸥鞣N類型的對象,簡單地說,vector是一個(gè)能夠存放任意類型的動態(tài)數(shù)組,能夠增加和壓縮數(shù)據(jù)。 為了可以使用vector,必須在你的頭文件中包含下面的代碼: #include <vector> vector屬于std命名域的,因此需要通過命名限定,如下完成你的代碼: using std::vector; vector<int> vInts; 或者連在一起,使用全名: std::vector<int> vInts; 建議在代碼量不大,并且使用的命名空間不多的情況下,使用全局的命名域方式:using namespace std; 函數(shù) 表述 c.assign(beg,end) c.assign(n,elem) 將(beg; end)區(qū)間中的數(shù)據(jù)賦值給c。將n個(gè)elem的拷貝賦值給c。 c.at(idx) 傳回索引idx所指的數(shù)據(jù),如果idx越界,拋出out_of_range。 c.back() 傳回最后一個(gè)數(shù)據(jù),不檢查這個(gè)數(shù)據(jù)是否存在。 c.begin() 傳回迭代器中的第一個(gè)數(shù)據(jù)地址。 c.capacity() 返回容器中數(shù)據(jù)個(gè)數(shù)。 c.clear() 移除容器中所有數(shù)據(jù)。 c.empty() 判斷容器是否為空。 c.end() //指向迭代器中末端元素的下一個(gè),指向一個(gè)不存在元素。 c.erase(pos) // 刪除pos位置的數(shù)據(jù),傳回下一個(gè)數(shù)據(jù)的位置。 c.erase(beg,end) 刪除[beg,end)區(qū)間的數(shù)據(jù),傳回下一個(gè)數(shù)據(jù)的位置。 c.front() 傳回第一個(gè)數(shù)據(jù)。 get_allocator 使用構(gòu)造函數(shù)返回一個(gè)拷貝。 c.insert(pos,elem) //在pos位置插入一個(gè)elem拷貝,傳回新數(shù)據(jù)位置 c.insert(pos,n,elem) //在pos位置插入n個(gè)elem數(shù)據(jù),無返回值 c.insert(pos,beg,end) //在pos位置插入在[beg,end)區(qū)間的數(shù)據(jù)。無返回值 c.max_size() 返回容器中最大數(shù)據(jù)的數(shù)量。 c.pop_back() 刪除最后一個(gè)數(shù)據(jù)。 c.push_back(elem) 在尾部加入一個(gè)數(shù)據(jù)。 c.rbegin() 傳回一個(gè)逆向隊(duì)列的第一個(gè)數(shù)據(jù)。 c.rend() 傳回一個(gè)逆向隊(duì)列的最后一個(gè)數(shù)據(jù)的下一個(gè)位置。 c.resize(num) 重新指定隊(duì)列的長度。 c.reserve() 保留適當(dāng)?shù)娜萘俊?c.size() 返回容器中實(shí)際數(shù)據(jù)的個(gè)數(shù)。 c1.swap(c2)//將c1和c2元素互換 swap(c1,c2)//同上操作。 vector<Elem> //創(chuàng)建一個(gè)空的vector vector<Elem> c1(c2) //復(fù)制一個(gè)vector vector <Elem> c(n)//創(chuàng)建一個(gè)vector,含有n個(gè)數(shù)據(jù),數(shù)據(jù)均已缺省構(gòu)造產(chǎn)生 vector <Elem> c(n, elem)//創(chuàng)建一個(gè)含有n個(gè)elem拷貝的vector vector <Elem> c(beg,end)//創(chuàng)建一個(gè)以(beg;end)為區(qū)間的vector c.~ vector <Elem>()//銷毀所有數(shù)據(jù),釋放內(nèi)存 operator[] 返回容器中指定位置的一個(gè)引用。 創(chuàng)建一個(gè)vector vector容器提供了多種創(chuàng)建方法,下面介紹幾種常用的。 創(chuàng)建一個(gè)Widget類型的空的vector對象: vector<Widget> vWidgets; 創(chuàng)建一個(gè)包含500個(gè)Widget類型數(shù)據(jù)的vector: vector<Widget> vWidgets(500); 創(chuàng)建一個(gè)包含500個(gè)Widget類型數(shù)據(jù)的vector,并且都初始化為0: vector<Widget> vWidgets(500, Widget(0)); 創(chuàng)建一個(gè)Widget的拷貝: vector<Widget> vWidgetsFromAnother(vWidgets); 向vector添加一個(gè)數(shù)據(jù) vector添加數(shù)據(jù)的缺省方法是push_back()。push_back()函數(shù)表示將數(shù)據(jù)添加到vector的尾部,并按需要來分配內(nèi)存。例如:向vector<Widget>中添加10個(gè)數(shù)據(jù),需要如下編寫代碼: for(int i= 0;i<10; i++) { vWidgets.push_back(Widget(i)); } 獲取vector中指定位置的數(shù)據(jù) vector里面的數(shù)據(jù)是動態(tài)分配的,使用push_back()的一系列分配空間常常決定于文件或一些數(shù)據(jù)源。如果想知道vector是否為空,可以使用empty(),空返回true,否則返回false。獲取vector的大小,可以使用size()。例如,如果想獲取一個(gè)vector v的大小,但不知道它是否為空,或者已經(jīng)包含了數(shù)據(jù),如果為空時(shí)想設(shè)置為 -1,你可以使用下面的代碼實(shí)現(xiàn): int nSize = v.empty() ? -1 : static_cast<int>(v.size()); 訪問vector中的數(shù)據(jù) 使用兩種方法來訪問vector。 1、 vector::at() 2、 vector::operator[] operator[]主要是為了與C語言進(jìn)行兼容。它可以像C語言數(shù)組一樣操作。但at()是我們的首選,因?yàn)閍t()進(jìn)行了邊界檢查,如果訪問超過了vector的范圍,將拋出一個(gè)例外。由于operator[]容易造成一些錯誤,所有我們很少用它,下面進(jìn)行驗(yàn)證一下: 分析下面的代碼: vector<int> v; v.reserve(10); for(int i=0; i<7; i++) { v.push_back(i); //在V的尾部加入7個(gè)數(shù)據(jù) } try {int iVal1 = v[7]; // not bounds checked - will not throw int iVal2 = v.at(7); // bounds checked - will throw if out of range } catch(const exception& e) { cout << e.what(); } 刪除vector中的數(shù)據(jù) vector能夠非常容易地添加數(shù)據(jù),也能很方便地取出數(shù)據(jù),同樣vector提供了erase(),pop_back(),clear()來刪除數(shù)據(jù),當(dāng)刪除數(shù)據(jù)時(shí),應(yīng)該知道要刪除尾部的數(shù)據(jù),或者是刪除所有數(shù)據(jù),還是個(gè)別的數(shù)據(jù)。 remove()算法 如果要使用remove,需要在頭文件中包含如下代碼: #include <algorithm> remove有三個(gè)參數(shù): 1、 iterator _First:指向第一個(gè)數(shù)據(jù)的迭代指針。 2、 iterator _Last:指向最后一個(gè)數(shù)據(jù)的迭代指針。 3、 predicate _Pred:一個(gè)可以對迭代操作的條件函數(shù)。 條件函數(shù) 條件函數(shù)是一個(gè)按照用戶定義的條件返回是或否的結(jié)果,是最基本的函數(shù)指針,或是一個(gè)函數(shù)對象。這個(gè)函數(shù)對象需要支持所有的函數(shù)調(diào)用操作,重載operator()()操作。remove是通過unary_function繼承下來的,允許傳遞數(shù)據(jù)作為條件。 例如,假如想從一個(gè)vector<CString>中刪除匹配的數(shù)據(jù),如果字串中包含了一個(gè)值,從這個(gè)值開始,從這個(gè)值結(jié)束。首先應(yīng)該建立一個(gè)數(shù)據(jù)結(jié)構(gòu)來包含這些數(shù)據(jù),類似代碼如下: #include <functional> enum findmodes { FM_INVALID = 0, FM_IS, FM_STARTSWITH, FM_ENDSWITH, FM_CONTAINS }; typedef struct tagFindStr { UINT iMode; CString szMatchStr; } FindStr; typedef FindStr* LPFINDSTR; 然后處理?xiàng)l件判斷: class FindMatchingString : public std::unary_function<CString, bool> { public: FindMatchingString(const LPFINDSTR lpFS) : m_lpFS(lpFS) { } bool operator()(CString& szStringToCompare) const { bool retVal = false; switch (m_lpFS->iMode) { case FM_IS: { retVal = (szStringToCompare == m_lpFDD->szMatchStr); break; } case FM_STARTSWITH: { retVal = (szStringToCompare.Left(m_lpFDD->szMatchStr.GetLength()) == m_lpFDD->szWindowTitle); break; } case FM_ENDSWITH: { retVal = (szStringToCompare.Right(m_lpFDD->szMatchStr.GetLength()) == m_lpFDD->szMatchStr); break; } case FM_CONTAINS: { retVal = (szStringToCompare.Find(m_lpFDD->szMatchStr) != -1); break; } } return retVal; } private: LPFINDSTR m_lpFS; }; 通過這個(gè)操作你可以從vector中有效地刪除數(shù)據(jù): FindStr fs; fs.iMode = FM_CONTAINS; fs.szMatchStr = szRemove; vs.erase(std::remove_if(vs.begin(), vs.end(), FindMatchingString(&fs)), vs.end()); Remove(),remove等所有的移出操作都是建立在一個(gè)迭代范圍上的,不能操作容器中的數(shù)據(jù)。所以在使用remove,實(shí)際上操作的時(shí)容器里數(shù)據(jù)的上面的。 看到remove實(shí)際上是根據(jù)條件對迭代地址進(jìn)行了修改,在數(shù)據(jù)的后面存在一些殘余的數(shù)據(jù),那些需要刪除的數(shù)據(jù)。剩下的數(shù)據(jù)的位置可能不是原來的數(shù)據(jù),但他們是不知道的。 調(diào)用erase()來刪除那些殘余的數(shù)據(jù)。注意上面例子中通過erase()刪除remove的結(jié)果和vs.enc()范圍的數(shù)據(jù)。


查看完整回答
反對 回復(fù) 2023-04-25
  • 2 回答
  • 0 關(guān)注
  • 192 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號