gpt4 book ai didi

c++ - 重载 << 运算符以插入到 vector 中

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:08 25 4
gpt4 key购买 nike

我发现许多解决方案都会使输出流运算符过载以打印出 vector 。我需要做相反的事情。类似的东西,

vector<string> v;
v << "String1" << "String2" << "String3" << "String4" << "String5";

我有这段代码,它只添加了第一个字符串。我明白这是为什么,但我不知道如何添加其他字符串。

template<typename T, typename T2>
vector<T> operator<<(vector<T>& v1, T2 s) {
v1.push_back(s);
return v1;
}

最佳答案

在您的函数中,您将返回输入 vector 的拷贝。我很惊讶您的编译器没有警告您在需要引用的地方使用临时对象作为参数。

将返回类型更改为引用。

template<typename T, typename T2>
vector<T>& operator<<(vector<T>& v1, T2 s) {
// ^^^
v1.push_back(s);
return v1;
}

关于c++ - 重载 << 运算符以插入到 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com