基于矢量数据生成字符串

时间:2017-11-22 20:43:07

标签: c++ vector

假设我有一个未知大小的数组,如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()次名称(数字)

我如何为此编写代码?

2 个答案:

答案 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)