C 關於類(vector)的問題

時間 2021-09-12 00:10:22

1樓:匿名使用者

你的**沒什麼大問題,只是有兩個地方需要修改一下,如下(見註釋):

#include

#include

#include

using namespace std;//只需要使用此句就可以了//using std::cin;

//using std::cout;

//using std::endl;

//using std::string;

//using std::vector;

int main()

}for(vector::size_type index=0;index!=text.size();index++)

cout<

cout<

return 0;}

2樓:手機使用者

main函式的應用程式的入口函式,不能定義成模板函式。

模板函式模板類都是在呼叫(或者例項化)的時候,被指定了引數型別之後才生成真正的**的。可以查相關的書籍《thinking in c++》《stl 原始碼剖析》等。

你改了main函式的原型,當然會出現連結錯誤。

vector本身是模板類,你可以指定任意的型別裝進去。

作為模板類,vector能夠儲存“任意型別”的資料,是指相對於vector這個類來說,他不關心儲存的是什麼型別的。但是當你例項化一個vector的時候,你就需要確定一個引數型別,這樣你才能擁有一個可以用來例項化一個具體物件的類型別,比如vector,vector,vecor等。

任意型別是相對於模板類的,不是相對於應用程式。對於一個應用程式,他的邏輯是確定的,他能處理的資料型別也是確定的。即使是某些可以產生隨意性結果的程式,他的邏輯在一定程度上也是確定的。

我不知道我說沒說清楚,如果還有問題,請提出。

3樓:匿名使用者

warningc4786: 'std::reverse_iterator,std::

allocator>*,std::basic_string,std::allocator>,std::

basic_string,std::allocator> &,std::basic_string,std::

allocator> *,int>' : identifier was truncated to '255' chara

cters in the debug information

在除錯資訊裡,識別符號'std::reverse_ite........................cator> *,int>'被截斷到255個字元

_________

我這不用using namespace std;沒事啊, 除了vc6,

你多加個using std::vector; 試試

不過text是vector的啊, 你用vector::size_type幹嘛?

用vector::size_type; 和using std::vector;

或者你換個高版本的或其他的編譯器試試

4樓:匿名使用者

可以去掉using namespace std,因為程式中你用到的std名字空間的型別都用了using指示宣告,這是可以做到的。至於你說編寫標頭檔案時,用std::使用std名字空間中的型別,這是為了防止std在標頭檔案中濫用而造成“名字汙染”,這剛好和引進名字空間的目的相反,事與願違了!

5樓:

#include

#include

#include

int main(int argc, char* ar**)比你寫的簡單多了。

6樓:匿名使用者

vector::size_type

改為vector::size_type

c++模板問題: vector::iterator iter;

7樓:程式設計_高手

上面的錯誤式iter沒有定義

改為vector::iterator iter;

而且標頭檔案最好這麼寫

#include

#include

using namespace std;

C 在類中定義vector並初始大小的問題

1 陣列大小固定,速度較快,通用格式是 資料型別 陣列名 陣列大小 2 vector 是stl中的容器類,包含多種通用演算法,長度可變,使用靈活,但效率稍低,vector是使用 new 和 delete 來管理記憶體的。3 array 陣列模板 在c 11中才支援,通用格式 array 型別名,元素...

關於C 類的問題。。急,關於C 類别範本的問題。。急

過載錯誤,不能區別2個過載函式 templateconst t array operator size t index const 加上const就能區別了 給你個例子 include using namespace std class a void fun int b void fun int b...

C 關於char陣列的問題,關於C char型別陣列長度的問題

可為什麼下標引用超出定義沒有錯誤 因為宣告char陣列的時候,b只是被宣告為指向char陣列第一個地址的指標。用操作符取資料的時候,編譯器看成是首地址向後偏移 char型別的長度 序號 超過了界限之後,至於後邊取到什麼意外資料就不一定了。所以一般需要使用char陣列儲存一個長度為n的字串的時候都宣告...