標籤:
首先得說一下,我是個菜逼,這個問題今天才發現,才理解是什麼意思;;;;
編程大牛請忽略此文章,,,,給初學者交流一下經驗吧;;;;;
臨近期末考試了,又拿出之前做的水體瀏覽一下,大喜,,發現問題了;;;;
在之前的C語言中,我們會經常用 char定義一個字元或字串,,,
當時在處理字串長度,字串比較的時候通常會加一個標頭檔 #include <string.h> 對吧;;;;
現如今呢,在c++中,,,,同樣出現了一個 #include <string>;
這不禁讓我迷惑,當時對於這個問題並沒有想,一帶而過了,,,
其實,,,在c++中 #include <string>表示的事模板(STL)中的標頭檔,那麼在c++中;
總是喜歡用string來定義字串;;;;;;
今天終於理解了他的好處,大家請看如下代碼;;;;;
#include <iostream>
#include <string>
#include <algorithm>
using
namespace
std;
int
main()
{
string s[50005];
int
T,i=0,j=0;
cin>>T;
while
(T--)cin>>s[i++];
sort(s,s+i);
while
(i--)cout<<s[j++]<<endl;
}
代碼很簡單,卻實現了字串的字典序排列 ;;;;;
其實當時在疑惑string s[50005];;;這是什麼鬼;
大家都知道想表達的本意是什麼吧;;;就是定義一個二維數組,,開始我認為string就是單純的像char一樣呢,這就理解不通了;;
要輸入好幾組字串,但是如果理解成char的話那就是只定義了一個只能裝一個字串;
現在真是覺得搞笑;;;其實這是c++中的模板的用法;;;;就是string 是一種特殊的類型容器,原因是他除了可作為自古類型的容器外,更多的是作為一種資料類型——字串;;;可以像 int ,double,之類的基礎資料型別 (Elementary Data Type)那樣定義string類型的資料,,,並進行各種運算。
所以要其字串的長度的呢,,就不能用strlen了,因為兩碼事,,,需要用string類中的屬性;;;
至於長度用 string name.length(); 或者 name.size();;;;
關於string的其他功能,,,,請問度娘,,,,不是本文重點;;;;
c++基礎編程 之 string