Stworzyłem dwa wektory i wypełniłem drugie push_back, a drugie indeksami. Spodziewałbym się, że będą równe, ale nie są. Czy ktoś może mi wyjaśnić, dlaczego tak jest?Dlaczego te wektory nie są równe?
#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;
}
try Resize. to, co napisałeś, to UB – sp2danny
Nie możesz porównywać takich wektorów. Wektory mają metodę, która pozwala na porównanie. –
Tuż przed twoim 'if' spróbuj coś jak' cout << v1.size(); '(i może' v0.size() ') i zobacz, czy nie daje wskazania, dlaczego nie są równe. –