我对将数据放在字符串数组中有疑问,我的意思是可以像下面这样做:
for(int i{};i<num;i++)
string[i]={"The degree of",i,"'th vertice is",degree[i]}
我已经尝试过了,我知道它在c ++中不实用,但还有其他任何方法可以做到这一点,我的目标是返回一个字符串,每个学位的数量都由一个名为degree的函数保存,就像我有的一样提到(例如&#34;第4和第45个顶点的度数是2&#34;)。 那有可能这样做吗? 我想调用以下函数:
std::cout<<degree();
感谢您的关注。
答案 0 :(得分:1)
当然,您可以将所有内容放在一个字符串中,并在每个逻辑行之间添加换行符('\n'
)。只需合并上面给出的代码片段:
std::string degrees()
{
std::string lines;
for(int i{};i<num;i++)
lines += "The degree of " + std::to_string(i) +
"'th vertice is " + std::to_string(degree[i]) + '\n';
return lines;
}
答案 1 :(得分:1)
您也可以尝试这样的事情(编辑删除参数传递到fnc度,因为OP不希望这样):
#include <iostream>
#include <sstream>
std::vector<int> degree = { 1,5,4,8,2,12,4,30,45,22 };
std::string degrees()
{
std::ostringstream oss;
for (size_t i = 0; i < degree.size(); ++i)
oss << (i > 0 ? "\n" : "") << "The degree of " << i + 1 << "'th vertice is " << degree[i];
return oss.str();
}
int main()
{
std::cout << degrees() << std::endl;
return 0;
}
打印: