Cześć.
Wywołanie cout << cV2 << endl;
nie pokazuje ostaniego elementu wektora cv2.vec
Sprawdzałem i ostatni element 8
tam jest i wektor ma wielkość 4
. Nie Wiecie dlaczego tak jest ?
using namespace std;
template<typename T>
class MyVector{
public:
MyVector(const initializer_list<T>& c ): vec{c} {}
MyVector(T* begin, T* end){
for(T* i = begin; i <= end; i++) {
vec.push_back(*i);
}
}
T* begin(){
return &vec[0];
}
T* end() {
int n = vec.size();
return &vec[n - 1];
}
vector<T>& get_vector(){
return vec;
}
private:
vector<T> vec{};
};
template<typename T>
ostream& operator<<(ostream& os, MyVector<T>& my) {
for(auto& e : my)
os << e << endl;
return os;
}
int main() {
MyVector<int> cV = {7,5,16,8};
MyVector<int> cV2(cV.begin(), cV.end());
cout << cV2 << endl;
}