用新的set对象替换set对象

NPi*_*ike 1 c++

我有一个私人领域的班级:

std::set<std::string> _channelNames;
Run Code Online (Sandbox Code Playgroud)

..和一个可选的setter函数:

void setChannelNames(std::set channelNames);
Run Code Online (Sandbox Code Playgroud)

在setter函数中,如何将private _channelNames字段替换为setter函数传递的字段?

我试过了:

void Parser::setChannelNames(std::set channelNames) {
    this->_channelNames = channelNames;
}
Run Code Online (Sandbox Code Playgroud)

但这在VS2005中产生了一个错误:

Error   2   error C2679: binary '=' : no operator found which takes a right-hand operand of type 'std::set' (or there is no acceptable conversion)   parser.cpp 61
Run Code Online (Sandbox Code Playgroud)

我绝对是一个C++新手,并期望我应该在这里做一些指针工作.

任何快速提示?

谢谢!

小智 6

你只需要专门化模板.std::set没有专业化就无法使用.

void Parser::setChannelNames(const std::set<std::string> & channelNames) {
    this->_channelNames = channelNames;
}
Run Code Online (Sandbox Code Playgroud)