c++:打印函数返回的字符串向量
c++: print string vector returned by function
所以本质上我在class A
中有一个私有std::vector<std::string> alloc
,它通过公共方法std::vector<std::string> allocMethod()
对它进行了一些操作等,然后这个方法执行return alloc
。该方法在class B
中调用
在class B
中,我想打印allocMethod
的返回值,即alloc
矢量。这就是我的
std::cout << A.allocMethod();
我知道,通常情况下,人们会使用某种interator和循环来打印出一个向量,但我不认为我能做到这一点,因为它是一个正在打印的函数返回值,而实际上不是一个向量。
注意:我确实不想只打印出class A
中的矢量。
有没有办法输出如上所示的std::vector<string>
结果?
"注意:我绝对不想只打印出A类中的矢量。"
由于您希望重复使用此选项,因此为std::vector<std::string>
提供适当的输出运算符过载可能是值得的
std::ostream& operator<<(std::ostream& os,const std::vector<std::string>>& vs) {
for (const auto& s : vs) {
os << s << " ";
}
return os;
}
这应该允许只调用
std::cout << A.allocMethod();
你甚至可以尝试一个更通用的过载
template<typename T>
std::ostream& operator<<(std::ostream& os,const std::vector<T>>& vs) {
for (const auto& s : vs) {
os << s << " ";
}
return os;
}
与您的想法相反,您可以通过迭代来打印矢量,尽管这是一个临时的使用C++11的循环,如下所示:
for (const auto& i : A.allocMethod())
std::cout << i << 'n';
您只需存储返回值,然后对其进行迭代
std::vector<std::string> result = allocMethod();
for (std::size_t i = 0; i < result.size(); ++i)
{
std::cout << result[i];
}
相关文章:
- 在 C++11 中,如何查找并返回以给定字符串开头的字符串向量中的所有项?
- 在将字符串放入字符串向量时遇到问题?
- 如何从字符串向量构造对象并避免复制?
- 如何在目录及其子文件夹中构建文件名字符串向量?
- 当映射包含字符串向量作为值时,从值中获取键的有效方法
- 将字符串向量中的字符串放入主字符串中
- 如何在 c++ 中从字符串向量中读取
- 用字符串的向量分配字符串向量
- 如何使用 STL 算法将整数向量转换为字符串向量?
- C++ 中字符串向量的索引
- 如何根据第二列/第三列等对字符串向量进行排序?
- 如何从输入中获取字符串向量?
- 使用 C++-17,如何从字符串向量填充元组
- 对于循环增量器不能用作字符串向量的索引
- 我有一个返回字符串向量的函数.它需要两个字符串,并且返回一个字符串中缺少的字符串
- 如何从字符串向量中选择第 n 个位置?
- 如何将csv中的数据放入c++中的字符串向量中,而绝对没有任何作用
- 反转不带反转函数的字符串向量
- 如何在字符串向量中指向const int
- 如何在字符串向量中找到某个值