2014-09-04 54 views
0

我試圖用STL的複製功能打印出矢量元素。 理論上它應該沒有任何故障,但我得到了奇怪的通知,我谷歌它,但我真的不明白我做了什麼故障。 讓我展示一下我關於:STL的複製功能打印出來的矢量

#include <iostream> 
#include <vector> 

int main(void) 
{ 
    vector<string> names; 
    names.push_back("Jeremy"); 
    names.push_back("James"); 
    names.push_back("Richard"); 

    copy(names.begin(), names.end(), ostream_iterator<string>(cout, ' '); 

    // this line cause some problems; 


} 

我得到了以下錯誤:

從爲const char *「到char」

無效的轉換我很想得到一些適當的(容易理解)解釋我的想法有什麼問題;)

乾杯!

回答

4

1.更改:

copy(names.begin(), names.end(), ostream_iterator<string>(cout, ' '); 

到:

copy(names.begin(), names.end(), ostream_iterator<string>(cout, " ")); 

(字符串文字而不是字符)

2.加括號缺失。

3.並添加缺少的<algorithm><iterator><string>標題。

4.增加using namespace std;

+0

我想知道,是用'copy'和'ostream_iterator'輸出容器共同的把戲? – 2014-09-04 07:28:21

+1

謝謝:)它工作 – 2014-09-04 07:28:56

+1

@MarsonMao:是的,這是一個優雅的STL方式來打印容器 – 2014-09-04 07:29:03