Задача звучит так:Сгенерируйте последовательность M случайных целых чисел со
значениями в интервале [-n/2..n/2] размера n (3 ≤ n ≤ 10000). Сформируйте из нее
мультимножество и выведите его значения в убывающем или возрастающем
порядке.
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int* getArray(int n)
{
{
srand(time(NULL));
int* m = new int[n];
for (int i = 0; i < n; i++)
m[i] = rand() % ((-n / 2) + (n / 2) + 11);
return m;
}
int main(); {
setlocale(LC_ALL, "RUS");
int n;
cout << "Введите размер последовательности n: ";
cin >> n;
int* m = getArray(n);
for (int i = 0; i < n; i++)
cout << m[i] << " ";
}
{
int m[] = { 1,4,3,9,2 };
for (int i = 0; i < n; i++) {
cout << m[i] << " ";
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
if (m[j] > m[j + 1])
swap(m[j], m[j + 1]);
}
cout << endl;
for (int i = 0; i < n; i++) {
cout << m[i] << " ";
return 0;
}
}
}
}
C/C++
Помогите исправить ошибку кода с++
#include <algorithm>
#include <iostream>
#include <vector>
#include <set>
#include <random>
#include <functional>
#include <iterator>
using namespace std;
size_t get_length(const char* msg) {
cout << msg;
size_t value;
cin >> value;
return value;
}
vector<int> get_sequence(const size_t length) {
const auto b = static_cast<int>(length >> 1);
const auto a = -b;
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
auto random = [&] { return uid(gen); };
vector<int> box(length);
generate(box.begin(), box.end(), random);
return box;
}
multiset<int, less<>> ascending(const vector<int>& vec) {
multiset<int, less<>> box;
copy(vec.begin(), vec.end(), inserter(box, box.begin()));
return box;
}
multiset<int, greater<>> descending(const vector<int>& vec) {
multiset<int, greater<>> box;
copy(vec.begin(), vec.end(), inserter(box, box.begin()));
return box;
}
int main() {
auto n = get_length("Введите размер последовательности: ");
auto seq = get_sequence(n);
auto asc = ascending(seq);
copy(asc.begin(), asc.end(), ostream_iterator<int>(cout, " "));
puts("");
auto des = descending(seq);
copy(des.begin(), des.end(), ostream_iterator<int>(cout, " "));
puts("");
}
#include <iostream>
#include <vector>
#include <set>
#include <random>
#include <functional>
#include <iterator>
using namespace std;
size_t get_length(const char* msg) {
cout << msg;
size_t value;
cin >> value;
return value;
}
vector<int> get_sequence(const size_t length) {
const auto b = static_cast<int>(length >> 1);
const auto a = -b;
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
auto random = [&] { return uid(gen); };
vector<int> box(length);
generate(box.begin(), box.end(), random);
return box;
}
multiset<int, less<>> ascending(const vector<int>& vec) {
multiset<int, less<>> box;
copy(vec.begin(), vec.end(), inserter(box, box.begin()));
return box;
}
multiset<int, greater<>> descending(const vector<int>& vec) {
multiset<int, greater<>> box;
copy(vec.begin(), vec.end(), inserter(box, box.begin()));
return box;
}
int main() {
auto n = get_length("Введите размер последовательности: ");
auto seq = get_sequence(n);
auto asc = ascending(seq);
copy(asc.begin(), asc.end(), ostream_iterator<int>(cout, " "));
puts("");
auto des = descending(seq);
copy(des.begin(), des.end(), ostream_iterator<int>(cout, " "));
puts("");
}
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <set>
using namespace std;
int main(){
int m,n; cout<<"M n: "; cin>>m>>n; srand(time(NULL)); int *a=new int[n];
for_each(a,a+m,[n](int &i){cout<<(i=rand()%(n+1)-n/2)<<' ';}); cout<<endl;
multiset<int> mset(a,a+m); for(int i:mset)cout<<i<<' '; cout<<endl;
for_each(mset.rbegin(),mset.rend(),[](int i){cout<<i<<' ';}); cout<<endl;}
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <set>
using namespace std;
int main(){
int m,n; cout<<"M n: "; cin>>m>>n; srand(time(NULL)); int *a=new int[n];
for_each(a,a+m,[n](int &i){cout<<(i=rand()%(n+1)-n/2)<<' ';}); cout<<endl;
multiset<int> mset(a,a+m); for(int i:mset)cout<<i<<' '; cout<<endl;
for_each(mset.rbegin(),mset.rend(),[](int i){cout<<i<<' ';}); cout<<endl;}
Пейнтбол В Талдыкоргане. Пейнтбольный Кл
То есть, std::vector в ваших краях под религиозным запретом? :)
мультимножество
multiset<int> myset (m, m+n);
вывод по возрастанию:
for(auto i = myset.begin();i!=myset.end(); i++) cout << *i << " ";
вывод по убыванию:
for(auto i = myset.rbegin();i!=myset.rend(); i++) cout << *i << " ";
multiset<int> myset (m, m+n);
вывод по возрастанию:
for(auto i = myset.begin();i!=myset.end(); i++) cout << *i << " ";
вывод по убыванию:
for(auto i = myset.rbegin();i!=myset.rend(); i++) cout << *i << " ";
Владимир Кальчик
Всё равно ошибка LNK2019. Не подскажите как избавиться?
Виталий Протасов
#include <set>
добавлена для множеств? Если да тогда уж не знаю.
добавлена для множеств? Если да тогда уж не знаю.
Виталий Протасов
#include<iostream>
#include<set>
#include<cstdlib>
#include<ctime>
using namespace std;
int* getArray(int n)
{
srand(time(NULL));
int* m = new int[n];
for (int i = 0; i < n; i++)
m[i] = rand()%(n+!(n&1))-n/2;
return m;
}
int main()
{
setlocale(LC_ALL, "RUS");
int n;
cout << "Введите размер последовательности n: ";
cin >> n;
int* m = getArray(n);
for (int i = 0; i < n; i++)
cout << m[i] << " ";
cout << "\n";
multiset<int>myset(m, m + n);
for (auto& i : myset) cout << i << " "; cout << "\n";
for (auto i = myset.rbegin(); i != myset.rend(); i++) cout << *i << " ";
}
#include<set>
#include<cstdlib>
#include<ctime>
using namespace std;
int* getArray(int n)
{
srand(time(NULL));
int* m = new int[n];
for (int i = 0; i < n; i++)
m[i] = rand()%(n+!(n&1))-n/2;
return m;
}
int main()
{
setlocale(LC_ALL, "RUS");
int n;
cout << "Введите размер последовательности n: ";
cin >> n;
int* m = getArray(n);
for (int i = 0; i < n; i++)
cout << m[i] << " ";
cout << "\n";
multiset<int>myset(m, m + n);
for (auto& i : myset) cout << i << " "; cout << "\n";
for (auto i = myset.rbegin(); i != myset.rend(); i++) cout << *i << " ";
}
Похожие вопросы
- Помогите исправить ошибку в коде, смотри внутри.
- Помогите исправить ошибку в коде, с++
- Помогите исправить ошибку Arduino
- Помогите исправить ошибку с С++ с отдельными переменными не понимаю где нужно прописать
- Помогите, пожалуйста, исправить ошибку в коде (C++).
- Помогите найти ошибку в коде
- Помогите найти ошибки в коде на C++, не выводится последняя строчка
- Работа с файлами С++, ну кто-нибудь помогите мне разработать код без ошибок, чтобы работало
- Исправить ошибки в коде с++
- Помогите найти ошибку в коде
Да после такого у людей будет появляться легкие позывы на рвоту при слове "STL"... и желание сменить профессию на сторожа в детском саду.
2. less<> greater<> наглядно демонститруют упорядоченность структуры контейнера. О самодокументирующем коде слышали?
3. Все алгоритмы STL ориентированы на бысродействие.
4. При работе с консольным выводом самым медленным является консольный вывод, поэтому скорость алгоритма вывода не имеет значения. Именно, поэтому я часто на этом ресурсе, для демонстрации, конвертирую последовательность числовых значений в строки, объединяя их в единую строку и уже результирующую строку вывожу в консоль. https://otvet.mail.ru/answer/2014040966
5. mt19937 это один из двух типов шаблона класса std::mersenne_twister_engine из библиотеки STL языка C++, а rand() относится к стандартной библиотеке языка C