2012-12-10 247 views
1
QString line = ""; 
std::vector<std::pair<int, QString> >::iterator it = recordingArray.begin(); 

while(it != recordingArray.end()) 
{ 
    line.append(*it); 
    line.append(','); 
} 

以上循環出一個向量。我需要將該對的每個部分轉換爲一個字符串,然後將其添加到「行」中。矢量將字符串轉換爲逗號字符串?

我該怎麼做?

+0

實際上你最後需要一個尾隨逗號嗎? – Potatoswatter

+0

我寧願沒有,但它不是那麼重要 – panthro

+0

可能的重複[用逗號C++打印列表](http://stackoverflow.com/questions/3496982/printing-lists-with-commas-c) – Potatoswatter

回答

1

我會用一個std::stringstream,然後將其轉換成一個QString

std::stringstream ss; 
std::vector<std::pair<int, QString> >::iterator it = recordingArray.begin(); 

for(; it != recordingArray.end(); ++it) 
{ 
    ss << it->first << ' ' << it->second.toStdString() << ','; 
} 

QString line = QString::fromStdString(ss.str()); 

編輯:我不知道QString的重載operator<<(std::ostream &out, const QString &qs),所以額外的轉換std::string似乎有必要。

+0

集合'std :: stringstream ss'具有不完整類型,無法定義 – panthro

+0

@ user1013512您是否包含'#include '? –

+0

是的,固定的,但你的代碼現在在運行時崩潰 – panthro

相關問題