我有2個向量,指向Point的指針的類型以利用多態性思想,因爲我有一些類型的繼承自Point類的點類。STL向量指針上的等於運算符
vector<Point*> previous_points;
vector<Point*> current_points;
init_points(previous_points);
init_points(current_points);
do_some_proccess(previous_points);
do_some_proccess(current_points);
cout << (previous_points == current_points) << endl; // returns 0
==操作符返回我0,即使內容是相同的,其原因是(從我讀並理解),這是比較向量內容是指針和指針是不(init_points爲每個矢量創建具有相同內容的新對象)。
我的問題是,我仍然可以使用比較運算符,並得到它比較我的向量中的指針的內容,而不是指針本身?或者我必須執行我自己的is_content_equals函數來做到這一點?
編輯:我已經在Point類中實現了equals ==運算符,因此它正在比較點的內容。
謝謝
如果指針不一樣,那麼內容就不一樣了。 – juanchopanza
您的比較只會比較向量中的*指針*,而不是它們指向的對象。 –
我已經在Point類中實現了equals ==運算符,因此它正在比較內容。忘了提及它。 –