C++
Si plas plas: Napisz klase wektorn słuzaca do przechowywania wektorów w przestrzeniach
wielowymiarowych. Wszystkie pola w klasie wektorn powinny byc
prywatne.
Mam problem z napisaniem konstruktora, ktory jako argument dostaje int'a i ma dynamicznie
zaalokowac pamiec dla n−wymiarowego wektora
bylbym wdzieczny za pomoc/wskazowki
27 lut 22:16
Si plas plas: odrazu dodam, ze problemem raczej nie byla by implementacja tylko po prostu nie moge tego
konceptualnie pojac
27 lut 22:17
Dziadek Mróz:
#include <iostream>
#include <cmath>
template <int n>
class Vectorn
{
private:
size_t *coord;
public:
Vectorn()
{
if (n < 0)
coord = new size_t[0];
else
coord = new size_t[n];
if (n > 0)
std::cout << "Podaj wspolrzedne wektora:\n";
for (size_t i = 0; i < n; i++)
{
std::cout << "[" << static_cast<char>('a'+i) << "]: ";
std::cin >> coord[i];
}
}
Vectorn(int c)
{
if (n < 0)
coord = new size_t[0];
else
coord = new size_t[n];
for (size_t i = 0; i < n; i++)
{
coord[i] = 0;
}
}
~Vectorn()
{
delete[] coord;
}
double length(const Vectorn<n> &v)
{
double len = 0;
for (size_t i = 0; i < n; i++)
{
len += pow(coord[i] − v.coord[i], 2);
}
len = sqrt(len);
return len;
}
friend std::ostream &operator <<(std::ostream &os, const Vectorn<n> &v)
{
os << "( ";
for (size_t i = 0; i < n; i++)
{
os << v.coord[i] << " ";
}
os << ")\n";
return os;
}
};
int main (int argc, char const* argv[])
{
//Vectorn<0> v0;
//Vectorn<2> v2;
Vectorn<3> v3;
//std::cout << v0;
//std::cout << v2;
//std::cout << v3;
std::cout << v3.length(Vectorn<3>(0)) << "\n";
std::cout << v3.length(Vectorn<3>()) << "\n";
return 0;
}
28 lut 14:38
Dziadek Mróz:
Vectorn() tworzy wektor z danymi z wejścia istream
Vectorn(int c) tworzy wektor o wspólrzednych (c, ...)
28 lut 14:40
Si plas plas: dzieki!
28 lut 22:54