gpt4 book ai didi

c++ - 使用运算符 << 将 std::strings 插入 vector 中

转载 作者:太空狗 更新时间:2023-10-29 23:46:53 24 4
gpt4 key购买 nike

如何使用 operator<<string进入 vector .我搜索了很多但只找到流示例。

class CStringData
{

vector< string > myData;
// ...
// inline operator << ... ???
};

我希望它用作一个简单的省略号(如 void AddData(...) )交换稳健的参数。

CStringData abc;
abc << "Hello" << "World";

这可能吗?

最佳答案

你可以定义operator<<作为:

class CStringData
{
vector< string > myData;
public:
CStringData & operator<<(std::string const &s)
{
myData.push_back(s);
return *this;
}
};

现在你可以这样写了:

CStringData abc;
abc << "Hello" << "World"; //both string went to myData!

但是我建议你不要让它成为成员函数,而是让它成为 friendCStringData :

class CStringData
{
vector< string > myData;

public:
friend CStringData & operator<<(CStringData &wrapper, std::string const &s);
};

//definition!
CStringData & operator<<(CStringData &wrapper, std::string const &s)
{
wrapper.myData.push_back(s);
return wrapper;
}

用法和以前一样!

要了解为什么您更喜欢交 friend 以及规则是什么,请阅读:

关于c++ - 使用运算符 << 将 std::strings 插入 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8411733/

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