重複の可能性:
C++ で int を文字列に変換する最も簡単な方法
Visual C++ 文字列について質問があります。次の文字列を連結したい。
for (int i=0; i<23; i++)
{
imagelist.push_back("C:/x/left"+i+".bmp");
imagelist.push_back("C:/x/right"+i+".bmp");
}
どうも
重複の可能性:
C++ で int を文字列に変換する最も簡単な方法
Visual C++ 文字列について質問があります。次の文字列を連結したい。
for (int i=0; i<23; i++)
{
imagelist.push_back("C:/x/left"+i+".bmp");
imagelist.push_back("C:/x/right"+i+".bmp");
}
どうも
1つの解決策は、文字列ストリームを使用することです。
#include<sstream>
for (int i=0; i<23; i++)
{
stringstream left, right;
left << "C:/x/left" << i << ".bmp";
right << "C:/x/left" << i << ".bmp";
imagelist.push_back(left.str());
imagelist.push_back(right.str());
}
stringstream
パフォーマンスソリューションは高速ではありませんが、理解しやすく、非常に柔軟性があります。
もう1つのオプションは、cスタイルの印刷に慣れている場合はitoa
、andを使用することです。しかし、それはあまりポータブルな機能ではないsprintf
と聞いています。itoa
for (int i=0; i<23; i++)
{
imagelist.push_back("C:/x/left"+std::to_string(i)+".bmp");
imagelist.push_back("C:/x/right"+std::to_string(i)+".bmp");
}
std::ostringstream os;
os << "C:/x/left" << i << ".bmp";
imagelist.push_back(os.str());