中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做網(wǎng)站推廣的好處seo外包靠譜

做網(wǎng)站推廣的好處,seo外包靠譜,軟件平臺(tái)公司,重慶裝修貸目錄 1.什么是STL 2.STL的版本 3.STL的六大組件 4.string類 4.1為什么學(xué)習(xí)string類? 4.2string常見接口 4.2.1默認(rèn)構(gòu)造 ?編輯 4.2.2析構(gòu)函數(shù) Element access: 4.2.3 [] 4.2.4迭代器 ?編輯 auto 4.2.4.1 begin和end 4.2.4.2.regin和rend Capacity: 4.2.5…

目錄

1.什么是STL

2.STL的版本

3.STL的六大組件

?4.string類

4.1為什么學(xué)習(xí)string類?

4.2string常見接口

4.2.1默認(rèn)構(gòu)造

?編輯

4.2.2析構(gòu)函數(shù)

?Element access:

4.2.3 []

4.2.4迭代器

?編輯

?auto

?4.2.4.1?begin和end

?4.2.4.2.regin和rend

Capacity:

?4.2.5.3?size

4.2.6 lenth?

4.2.7 cleart

Modifiers:

4.2.7 apend

4.2.8? +=

4.2.9 erase

4.2.10 replace

?String operations:

?4.2.11 find

4.2.12 substr

4.2.13? find_first_of

4.2.14? find_ last_of

4.2.15 find_first_not_of

?4.2.16 find_last_not_of


1.什么是STL

STL(standarf template libaray-標(biāo)準(zhǔn)模板庫):是C++標(biāo)準(zhǔn)庫的重要組成部分,不僅是一個(gè)可復(fù)用的組件庫,而且是一個(gè)包羅數(shù)據(jù)結(jié)構(gòu)與算法的軟件框架。

2.STL的版本

  • 原始版本

Alexander Stepanov MengLee 在惠普實(shí)驗(yàn)室完成的原始版本,本著開源精神,他們聲明允許任何人任意運(yùn)用,拷貝,修改,傳播,商業(yè)使用這些代碼,無需付費(fèi)。唯一的條件就是也需要向原始版本一樣做開源使用。HP版本--所有STL實(shí)現(xiàn)版本的始祖。

  • P.J.版本

由P.J.Plauger開發(fā),繼承自HP版本,被Windows Visual C++采用,不能公開或修改,缺陷:可讀性比較低,符號(hào)命名比較怪異。

  • RW版本

由Rouge Wage 公司開發(fā),繼承自HP版本,被C++ Builder 采用 ,不能公開或修改,缺陷:可讀性一般

  • SGL版本

由Silicon Graphics Computer Systems ,Inc公司開發(fā),繼承自HP版本。被GCC(Linux)采用,可移植性較好,可公開,修改甚至販賣,從命名風(fēng)格和編程風(fēng)格上看,閱讀性非常高。

3.STL的六大組件

?4.string類

4.1為什么學(xué)習(xí)string類?

C語言中,字符串是以"\0"結(jié)尾的一些字符的集合,為了方便操作,C標(biāo)準(zhǔn)庫中提供了一些str系列的庫函數(shù),但是這些庫函數(shù)與字符串是分開的,不太符合OOP的思想,而且底層空間需要用戶自己管理,稍不留神可能還會(huì)越界訪問。而且在常規(guī)工作中,為了簡單,方便,快捷,基本都使用string類,很少有人使用C庫中的字符串操作函數(shù)

4.2string常見接口


4.2.1默認(rèn)構(gòu)造

實(shí)例

	//無參構(gòu)造//string();string s1;//帶參構(gòu)造string s2("111");//string(const char* s);	//拷貝構(gòu)造string s3(s2);//string(const string & str);string s4("123", 2, 1);//string(const string & str, size_t pos, size_t len = npos);//復(fù)制str中從字符下標(biāo)位置 pos 開始的len個(gè) 字符進(jìn)行拷貝構(gòu)造(如果任一 str 太短或 len 為 string::npos,則復(fù)制到str 的末尾)。string s5("123",0 ,string:: npos);//	string(const char* s, size_t n);string s6("123", 2);//從 s 指向的字符數(shù)組中復(fù)制前 n 個(gè)字符。//string(size_t n, char c);//用連續(xù)的n個(gè)c字符去初始化string s7(3, 'c');//template <class InputIterator>//string(InputIterator first, InputIterator last);
4.2.2析構(gòu)函數(shù)

?Element access:

4.2.3 []

獲取字符串的字符

?利用[]來進(jìn)行讀寫,下標(biāo)+[]遍歷

int main()
{   string s1("abcd");//寫s1[0] ='*';//將下標(biāo)為0的元素修改為1cout << s1 << endl;//讀for (int i = 0; i < s1.size(); i++){cout << s1[i] ;}return 0;
}

?

[]原型

class string
{public:
char&	operator[](size_t i){return _str[i];}
private:char* _str;size_t _size;size_t _capacity;
};
4.2.4迭代器

在 STL 中,迭代器(Iterator)用來訪問和檢查 STL 容器中元素的對(duì)象,它的行為模式和指針類似,但是它封裝了一些有效性檢查,并且提供了統(tǒng)一的訪問格式。他的底層是指針

迭代器遍歷

int main()
{   string s1("abcd");string::iterator it = s1.begin();while (it != s1.end()){cout << *it <<" " ;++it;}return 0;
}
?auto

補(bǔ)充一個(gè)C++小語法

auto可自動(dòng)推導(dǎo)類型,極大程度簡化代碼

const string s3("hello ward!");//string::const_iterator cit=s3.begin(); 可簡寫成:
auto cit = s3.begin();

?auto聲明方式

auto? 變量名

auto? 函數(shù)名 (形參列表)

{

//函數(shù)體

}

?auto的實(shí)例

int fun()
{return 10;
}
int main()
{int a=10;auto b = a;auto c = 'a';auto d = fun();auto& e = a;auto* f = &a;cout << typeid(a).name() << endl;cout << typeid(b).name()<< endl;cout << typeid(c).name() << endl;cout << typeid(d).name() << endl;cout << typeid(e).name() << endl;cout << typeid(f).name() << endl;return 0;
}

  • 在早期C/C++中auto的含義是:使用auto修飾的變量,是具有自動(dòng)存儲(chǔ)的局部變量,后來這個(gè)不重要了,C++11中,標(biāo)準(zhǔn)委員會(huì)被廢為寶賦予了auto全新的含義即:auto不再是一個(gè)存儲(chǔ)類型指示符,而是作為一個(gè)新的類型指示符來指示編譯器,auto聲明的變量必須由編譯器在編譯時(shí)期推導(dǎo)而得
  • 用auto聲明指針類型時(shí),用auto和auto*沒有任何區(qū)別,但用auto聲明引用類型時(shí)必須加&
  • 當(dāng)在同一行聲明多個(gè)變量時(shí),這些變量必須是相同的類型,否則編譯器會(huì)報(bào)錯(cuò),因?yàn)榫幾g器實(shí)際只對(duì)第一個(gè)類型進(jìn)行推導(dǎo),然后用推導(dǎo)出來的類型定義其他變量
  • auto不能作為函數(shù)的參數(shù),可以做返回值,但是謹(jǐn)慎使用
  • aoto不能直接用來聲明數(shù)組

范圍for遍歷

?aoto自動(dòng)推導(dǎo),字符賦值,自動(dòng)迭代,自動(dòng)判斷結(jié)束,底層上也是迭代器,所有的容器都支持范圍for,因?yàn)樗械娜萜鞫贾С值?/p>

?4.2.4.1?begin和end

?1.begin

?返回第一個(gè)字符的正向迭代器

int main()
{   string s1("abcd");cout<<* s1.begin();return 0;
}

?

2. end 返回最后一個(gè)字符的正向迭代器

?可配合起來正向遍歷

int main()
{string s1("abcdef");string::const_iterator it = s1.begin();while (it != s1.end()){cout << *it << " ";it++;}return 0;
}

?

?4.2.4.2.regin和rend

regin?返回最后一個(gè)的反向迭代器

?rend 返回第一個(gè)字符的反向迭代器

配合起來可支持反向遍歷

int main()
{string s1("abcdef");string::const_reverse_iterator it = s1.rbegin();while (it != s1.rend()){cout << *it << " ";it++;}return 0;
}

?

Capacity:

?4.2.5.3?size

?返回字符串的長度,不包括'\0'

int main()
{   string s1("abcd");cout << s1.size();return 0;
}

4.2.6 lenth?

??返回以字節(jié)為單位的長度,不包括"\0"

int main()
{string s1("abcdef");cout << s1.length()<<endl;return 0;
}

?

4.2.7capacity

l返回容量大小

?

?4.2.7reserve

保留預(yù)留,提前開空間,避免擴(kuò)容,提高效率

int main()
{string s1("abcdef");cout << s1.capacity() << endl;s1.reserve(100);cout << s1.capacity()<<endl;//可以擴(kuò)容,>=100s1.reserve(50);cout << s1.capacity() << endl;//一般不會(huì)縮容return 0;
}

4.2.7 cleart

清除數(shù)據(jù),一般不清除容量

int main()
{string s1("abcdef");cout << s1.capacity() << endl;cout << s1.size() << endl;s1.clear();cout << s1.capacity() << endl;cout << s1.size() << endl;//一般不會(huì)縮容return 0;
}

?

Modifiers:

4.2.7 apend

字符串追加


int main()
{string s1("abcdef");//string& append(const string & str);s1.append("yyy");cout << s1 << endl;//	string& append(const string & str, size_t subpos, size_t sublen);
//追加 str 子字符串的副本。子字符串是 str 中從字符位置 subpos 開始并跨越 sublen 字符的部分(或者直到 str 的末尾,如果任一 str 太短或 sublen 是 string::npos)。s1.append("aaaa", 2, 1);cout << s1 << endl;return 0;
}

?

4.2.8? +=

字符串拼接,尾插

int main()
{string s1("abcdef");string s2("123");//string& operator+= (const string & str);s1 += s2;s1 += 'a';
//string& operator+= (char c);s1 += "aaa";
//string & operator+= (const char* s);return 0;
}
int main()
{string s1("abcdef");string s2("123");//string& insert(size_t pos, const string & str);// 在pos之前插入strs1.insert(0, "abc");//string& insert(size_t pos, const string & str, size_t subpos, size_t sublen);//在下標(biāo)pos位置之前插入str下表中subpos到下標(biāo)sublen位置的元素s2.insert(0, "abcdd", 0, 4);cout << s2 << endl;//string & insert(size_t pos, const char* s);//在pos位置之前插入s//string& insert(size_t pos, const char* s, size_t n);//從在下標(biāo)為pos的位置插入s的n個(gè)字符//string& insert(size_t pos, size_t n, char c);//在pos位置之前插入n個(gè)c字符//void insert(iterator p, size_t n, char c);//在迭代器的位置之前插入n個(gè)字符c//iterator insert(iterator p, char c);//在迭代器的位置之前插入字符cs1.insert(s1.begin(), '*');cout << s1 << endl;return 0;
}
4.2.9 erase

頭刪

int main()
{string s1("abcdef");string s2("123");//string& erase(size_t pos = 0, size_t len = npos);//擦除字符串值中從字符位置 pos 開始并到 len 字符的部分不包括len(如果內(nèi)容太短或 len 為 string::npos,則擦除字符串值的末尾。s1.erase(0, 2);//iterator erase(iterator p);//擦除 p 指向的字符。s1.erase(s1.begin());//iterator erase(iterator first, iterator last);
//擦除[first,last] 范圍內(nèi)的字符序列s1.erase(s1.begin(), s2.end());cout << s1 << endl;return 0;
}
4.2.10 replace

替換

int main()
{string s1("abcdef");string s2("123");//string & replace(size_t pos, size_t len, const char* s);//string& replace(size_t pos, size_t len, const string & str);//把pos位置到len位置替換成str//string& replace(iterator i1, iterator i2, const char* s);//string& replace(iterator i1, iterator i2, const string & str);//把i1到i2之間的迭代器換成str//string& replace(size_t pos, size_t len, size_t n, char c);//string& replace(size_t pos, size_t len, const char* s, size_t n);//把pos位置到len位置替換成str中的前n個(gè)//string& replace(iterator i1, iterator i2, const char* s, size_t n);//把i1到i2之間的迭代器換成str中的前n個(gè)//string& replace(iterator i1, iterator i2, size_t n, char c);//把i1到i2之間的迭代器換成n個(gè)字符c//string& replace(iterator i1, iterator i2,//InputIterator first, InputIterator last);//將迭代器輸入到范圍內(nèi)的初始位置和最終位置。使用的范圍是 [first,last),它包括 first 和 last 之間的所有字符,包括 first 指向的字符,但不包括 last 指向的字符return 0;
}

?String operations:

?4.2.11 find

查找

返回第一個(gè)匹配的第一個(gè)字符的位置。
如果未找到匹配項(xiàng),該函數(shù)將返回?string::npos。(整型最大值)

int main()
{string s1("abcdef");string s2("123");//size_t find(const string & str, size_t pos = 0) const;s1.find("bce");//	size_t find(const char* s, size_t pos = 0) const;//在pos位置找ss1.find('a');//	size_t find(const char* s, size_t pos, size_t n) const;//從pos位置找s的前n個(gè)cout<< s1.find("aaa", 1, 2);//	size_t find(char c, size_t pos = 0) const;//從pos位置開始搜索字符creturn 0;
}
4.2.12 substr

獲得對(duì)于位置以后的子串然后重新構(gòu)成string類返回

int main()
{string s1("abcdef");//tring substr(size_t pos = 0, size_t len = npos) const;//從pos位置開始的len個(gè)字符重新構(gòu)建成string再返回s1.substr(3, 4);return 0;
}

實(shí)例

int main()
{string s("text.cpp");size_t pos = s.rfind('.');string suffix = s.substr(pos);cout << suffix << endl;;return 0;
}

?

4.2.13? find_first_of

順著找字符串中的字符,找到返回第一個(gè)出現(xiàn)的下標(biāo)


int main()
{string s1("abcdef");//ze_t find_first_of(const string & str, size_t pos = 0) const;//ize_t find_first_of(const char* s, size_t pos = 0) const;//ize_t find_first_of(char c, size_t pos = 0) const;//在pos位置開始找str中的字符s1.find_first_of("abc");//ize_t find_first_of(const char* s, size_t pos, size_t n) const;//在pos位置找s的前n個(gè)return 0;
}
4.2.14? find_ last_of

倒著找字符串中的字符,找到返回第一個(gè)出現(xiàn)的下標(biāo)

int main()
{string s1("abcdef");//size_t find_last_of(const string & str, size_t pos = npos) const;// //size_t find_last_of(char c, size_t pos = npos) const;// size_t find_last_of(const char* s, size_t pos = npos) const;//從最后一個(gè)位置向前找str中的字符s1.find_last_of("Abc",2,4);//size_t find_last_of(const char* s, size_t pos, size_t n) const;//從最后一個(gè)位置向前找str中的n個(gè)字符return 0;
}

?分割文件

void SplitFilename(const std::string & str){std::cout << "Splitting:" << str << endl;std::size_t found = str.find_last_of(" / \\");std::cout << "path:" << str.substr(0, found) << endl;std::cout << "file:" << str.substr(found + 1) << endl;}
int main()
{string str1("windows\\winhelp.exe");string str2("/url/bin/man");SplitFilename(str1);cout << endl;SplitFilename(str2);return 0;
}

4.2.15 find_first_not_of

沒找到就返回,順著找返回第一個(gè)不匹配的對(duì)應(yīng)下標(biāo)

int main()
{string s1("abcdef");//size_t find_first_not_of(const string & str, size_t pos = 0) const;//size_t find_first_not_of(const char* s, size_t pos = 0) const;	// //size_t find_first_not_of(char c, size_t pos = 0) const;//從第一個(gè)位置向前找str中的n個(gè)字符找到第一個(gè)不匹配的元素下標(biāo),找不到就返回// //size_t find_first_not_of(const char* s, size_t pos, size_t n) const;//從第一個(gè)位置向后找中第一個(gè)不匹配的字符str中的前n個(gè)的字符return 0;
}

實(shí)例

int main()
{//string str("Please, replace the vowels in this sentence by asterisks.");//除了"abcdef"以外全部替換成*std::size_t found = str.find_first_not_of("abcdef");while (found != std::string::npos){str[found] = '*' ;found = str.find_first_not_of("abcdef", found + 1);}std::cout << str;return 0;
}

?

?4.2.16 find_last_not_of

倒著找,找到第一個(gè)不匹配返回下標(biāo)

int main()
{//ize_t find_first_not_of(const string & str, size_t pos = 0) const;//	size_t find_first_not_of(const char* s, size_t pos = 0) const;//size_t find_first_not_of(char c, size_t pos = 0) const;// 從最后一個(gè)位置向前找第一個(gè)不匹配str中的字符的下標(biāo)//size_t find_first_not_of(const char* s, size_t pos, size_t n) const;//從最后一個(gè)位置向前找第一個(gè)不匹配str中的前n個(gè)字符的下標(biāo),找不到就返回return 0;
}

http://www.risenshineclean.com/news/11485.html

相關(guān)文章:

  • 好品質(zhì)高端網(wǎng)站設(shè)計(jì)廣州百度快速優(yōu)化排名
  • 化妝品網(wǎng)站欄目設(shè)計(jì)推廣策劃方案怎么寫
  • 做網(wǎng)站人網(wǎng)頁設(shè)計(jì)制作網(wǎng)站素材
  • 注冊登錄汕頭搜索引擎優(yōu)化服務(wù)
  • 找人做彩票網(wǎng)站多少錢seo推廣論壇
  • 騰網(wǎng)站建設(shè)谷歌google下載安卓版 app
  • 中國網(wǎng)站的特點(diǎn)seo數(shù)據(jù)統(tǒng)計(jì)分析工具有哪些
  • 免費(fèi)軟件下載網(wǎng)站app南京百度網(wǎng)站推廣
  • 做網(wǎng)站時(shí)分類標(biāo)題和分類描述搜索詞和關(guān)鍵詞
  • 鮮花加盟網(wǎng)站建設(shè)網(wǎng)站優(yōu)化與seo
  • 商城網(wǎng)站建設(shè)浩森宇特好看的網(wǎng)站ui
  • 成都網(wǎng)站建設(shè)公司電話seo網(wǎng)絡(luò)推廣公司
  • 香港網(wǎng)站不備案淘寶站外引流推廣方法
  • 建設(shè)網(wǎng)站6980塊錢貴嗎山西seo
  • 聊城網(wǎng)站建設(shè)方案網(wǎng)站推廣的基本方法有
  • 常州模板建站哪家好四年級(jí)寫一小段新聞
  • 浪琴手表網(wǎng)站建設(shè)圖公眾號(hào)引流推廣平臺(tái)
  • 禁止拿我們的網(wǎng)站做宣傳市場調(diào)研報(bào)告3000字范文
  • 國外 網(wǎng)站頁面跨境電商關(guān)鍵詞工具
  • 免費(fèi)圖片素材網(wǎng)南京怎樣優(yōu)化關(guān)鍵詞排名
  • 東營建設(shè)信息網(wǎng)站百度手機(jī)導(dǎo)航官方新版
  • 門戶網(wǎng)站案例發(fā)稿推廣
  • 單位網(wǎng)站平臺(tái)建設(shè)匯報(bào)sem搜索
  • 創(chuàng)建學(xué)校網(wǎng)站今天的重要新聞
  • 竹子建站下載哈爾濱最新消息
  • 怎么做自己的推廣網(wǎng)站google seo 優(yōu)化
  • 手機(jī)網(wǎng)站永久免費(fèi)制作seo如何優(yōu)化排名
  • 企業(yè)專業(yè)網(wǎng)站建設(shè)搜索引擎推廣簡稱
  • 建站快車打電話百度云鏈接
  • 湖南微信網(wǎng)站建設(shè)百度地圖推廣電話