2012-12-10 4 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

나는 다음 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()); 

편집 할 수있는 그 변환하는 std::stringstream 사용한다 : 나는 QString 그렇게 std::string에 별도의 변환이 필요한 것 같다, operator<<(std::ostream &out, const QString &qs) 과부하 모르겠어요.

+0

aggregate 'std :: stringstream ss'형식이 완전하지 않아 정의 할 수 없습니다 – panthro

+0

@ user1013512'#include '했습니까? –

+0

예, 그게 수정되었지만 런타임에 코드가 충돌합니다. – panthro

관련 문제