2012-02-20 78 views

回答

2

當使用C++ 2011,您還可以使用std::to_string()

name[i] = "Name" + std::to_string(i + 1); 

這應該避免需要創建一個字符串流。

+0

如果你的編譯器還沒有提供它,你可以找到幾個不同的實現選擇[這裏](http://stackoverflow.com/questions/4351371/c-performance-challenge-integer-to-stdstring-conversion ) – 2012-02-20 00:25:03

1

std::stringstream是什麼:

std::stringstream ss; 
ss << "Name" << (i+1); 

... 

name[i] = ss.str(); 
+2

是否有任何特殊的原因不使用'std :: ostringstream'? (請注意'std ::'後面有趣的'o') – 2012-02-20 00:10:53

+0

@DietmarKühl:要使用它的任何特殊原因? – 2012-02-20 00:11:46

+0

雖然'std :: istream'並不真正添加任何成員,但該對象更簡單,構建速度稍快。由於開放模式被傳遞給'std :: stringbuf',如果該類知道它只用於輸入或輸出(儘管大多數實現忽略這一點),它可以避免一些設置。最後,它指出了流的實際用途(當然,我設法在'o'的時候使用'i')。 – 2012-02-20 00:16:29

相關問題