Другие языки программирования и технологии

C++ задание по массивам

У меня есть задание
1. "Упорядочить элементов массива по возрастанию модулей элементов"
2. "Найти количество элементов массива, равных 0"

помогите с постройкой пожалуйста...
в голову ничего не приходить. напишите ключевые места...
Nurik
Nurik
129
#include < iostream >
#include < algorithm >
#include < vector >
#include < cstdlib >
#include < ctime >
#include < cmath >

using namespace std;

void main()
{
setlocale(LC_ALL, "rus");
srand(time(NULL));
system("color 0A");
cout << "Введите число элементов в контейнере ";
unsigned n;
cin >> n;
vector < pair < int,unsigned > > v(n);
auto in = []()
{
int t = -50 + rand() % 101;
pair < int, unsigned > pr(t, abs(t));
return pr;
};
generate(v.begin(), v.end(), in);
cout << "Исходное содержание контейнера" << endl;
for (auto t : v)
cout << t.first << " ";
cout << endl;
sort(v.begin(), v.end(), [](pair < int, unsigned > d1, pair < int, unsigned > d2) {return d1.second < d2.second; });
cout << "Содержание контейнера после упорядочивания элементов по модулю по возрастанию" << endl;
for (auto t : v)
cout << t.first << " ";
cout << endl;
unsigned sum = 0;
for_each(v.begin(), v.end(), [&sum](pair < int, unsigned > t) {if (t.first == 0) ++sum; });
cout << "Количество элементов равных нулю " << sum << endl;
cin.get(); cin.get();
}
Женя Осечков
Женя Осечков
8 552
Лучший ответ
Nurik Роман
auto in = []() вот здесь выдает ошибку.... можете просмотреть эту часть
Nurik я работаю на код блок.... может из за этого? ну остальные работают же...
#include <iostream>
#include <iterator>
#include <algorithm>
using namespace std;
int main() {
int box[] = { 1, 2, 0, 3, -5, 7, -4, 8, 0, -9, 6, 0 };
copy(begin(box), end(box), ostream_iterator<int>(cout, " "));
cout.put('\n');
const auto lambda = [](int a, int b) { return abs(a) < abs(b); };
sort(begin(box), end(box), lambda);
copy(begin(box), end(box), ostream_iterator<int>(cout, " "));
cout.put('\n');
const auto zero = count(begin(box), end(box), 0);
cout << "Zero: " << zero << '\n';
system("pause");
}
Maxim S.t.a.l.k.e.r.
Maxim S.t.a.l.k.e.r.
88 279