Я не понимаю почему элементы мапы и вектора не возводятся в квадрат. #include
#include
#include
#include
using namespace std;
template
T Sqr(T a) {
a *= a;
return a;
}
template
pair Sqr(pair p) {
return {Sqr(p.first), Sqr(p.second)};
}
template
map Sqr(map m) {
for (pair i : m) {
i.second = Sqr(i.second);
}
return m;
}
template
vector operator*(vector lhs, const vector & rhs) {
for (T i : lhs) {
i = Sqr(i);
}
return lhs;
}
int main() {
// Пример вызова функции
vector v = {1, 2, 3};
cout << "vector:";
for (int x : (v * v)) {
cout << ' ' << x;
}
cout << endl;
map > map_of_pairs = {
{4, {2, 2}},
{7, {4, 3}}
};
cout << "map of pairs:" << endl;
for (const auto& x : Sqr(map_of_pairs)) {
cout << x.first << ' ' << x.second.first << ' ' << x.second.second << endl;
}
int a = 2;
cout << Sqr(a);
}
// Внимание! Если программа не работает, обновите её версию!
begin
var Z:=ArrRandom(ReadInteger('n='),1,99);
Writeln('Массив Z'); Z.Println;
Writeln('Массив X');
var X:=Z[1::2].Select(p->p/2).ToArray; Swap(X[0],X[X.Length-1]);
X.Println;
Writeln('Массив Y');
var Y:=Z[::2].Select(p->p/3).ToArray; Swap(Y[0],Y[Y.Length-1]);
Y.Println
end.
Пример
n= 8
Массив Z
74 17 35 3 33 84 48 39
Массив X
19.5 1.5 42 8.5
Массив Y
16 11.6666666666667 11 24.6666666666667