Tôi đã tạo hai vectơ và điền một vectơ khác với push_back và một cái còn lại có chỉ mục. Tôi mong đợi những điều này sẽ bằng nhau nhưng không. Ai đó có thể giải thích cho tôi tại sao điều này?Tại sao các vectơ này không bằng nhau?
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> v0;
v0.push_back(0);
v0.push_back(1);
v0.push_back(2);
vector<int> v1;
v1.reserve(3);
v1[0] = 0;
v1[1] = 1;
v1[2] = 2;
if (v0 != v1) {
cout << "why aren't they equal?" << endl;
}
return 0;
}
thử thay đổi kích thước. những gì bạn đã viết là UB – sp2danny
Bạn không thể so sánh các vectơ như thế. Vectơ có một phương pháp cho phép so sánh. –
Ngay trước khi 'if' thử một cái gì đó như' cout << v1.size(); '(và có thể' v0.size() ') và xem nó có đưa ra một số dấu hiệu về lý do tại sao chúng không bằng nhau. –