有简单的例子:STL:如何重载operator = for <vector>?
#include <vector>
int main() {
vector<int> veci;
vector<double> vecd;
for(int i = 0;i<10;++i){
veci.push_back(i);
vecd.push_back(i);
}
vecd = veci; // <- THE PROBLEM
}
我需要知道的事情是如何重载operator =,这样我可以使分配是这样的:
vector<double> = vector<int>;
我只是尝试了很多办法,但总是编译器一直在返回错误...
有没有任何选项可以使这段代码工作而不改变它?我可以写一些额外的行,但不能编辑或删除现有的行。 TY。
好的,我明白了。我会用另一种方式问你。 有没有任何选项可以使这段代码无需改变就可以工作?我可以写一些额外的行,但不能编辑或删除现有的行。 TY。
如果代码完全像您发布的那样,您可以简单地在全局名称空间中定义名为vector的类。那将会被使用。 (现在代码不会编译,因为你在该命名空间之外使用名称空间'std'的成员的非限定名称。) 即使由于在C++中隐藏工作而在某处使用了namespace std,这个相当丑陋的黑客行为也会起作用。 对于确切答案,您必须发布确切的问题 - 您必须准确定义允许代码的编辑类型。 –