假设我有一个未知大小的数组,如0,1,2,3 ...
for(int i = 0; i < array.size(); i++)
{
string name;
int number;
if (array[i] == 0)
{
name ="jack";
number="10";
}
else if (array[i] == 1)
{
name="alice";
number=15";
}
//....
}
使用这些数据我想生成一个字符串,如:
string text = name(number)+name(number)+name(number)...
在字符串
中必须有array.size()次名称(数字)我如何为此编写代码?
答案 0 :(得分:0)
您可以使用std::ostringstream
:
std::ostringstream out_stream;
out_stream << name << "(" << "number" << ")";
//...
std::cout << out_stream.str() << std::endl;
答案 1 :(得分:0)
使用stringstream
#include <iostream>
#include <string>
#include <sstream>
#include <utility>
int main()
{
std::vector<std::pair<std::string, int>> array;
array.push_back(std::make_pair("jack", 10)); //index 0
array.push_back(std::make_pair("alice", 15)); //index 1
array.push_back(std::make_pair("bob", 20)); //index 2
std::ostringstream oss;
for (auto &el : array)
{
oss << el.first << "(" << el.second << ")";
}
std::string text = oss.str();
std::cout << text;
return 0;
}
打印:
jack(10)alice(15)bob(20)