有簡單的例子: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,這個相當醜陋的黑客行爲也會起作用。 對於確切答案,您必須發佈確切的問題 - 您必須準確定義允許代碼的編輯類型。 –