Задача про 27номер из егэ. Как известно, в некоторых задачах просят составить наиболее эффективную по времени и памяти программу. В связи с этим возник вопрос, что лучше использовать, вектор, или массив?
Вот краткая формулировка одной из задач: сперва вводится N - количество элементов числовой последовательности, N<100. Затем вводится последовательность. На выходе программа должна вывести сначала отрицательные числа в том, порядке, в котором они были даны, затем положительные числа в таком же порядке. Код с массивом и вектором прилагаю.
Код с вектором:
#include <iostream>
#include <vector>
using namespace std;
int main() {
unsigned short int n;
cin >> n;
vector <short int> arr;
for (int i = 0; i < n; i++)
{
int k;
cin >> k;
arr.push_back(k);
}
arr.shrink_to_fit();
for (int i = 0; i < n; i++)
{
if (arr[i] < 0)
cout << arr[i] << " ";
}
cout << endl;
for (int i = 0; i < n; i++)
{
if (arr[i] >= 0)
cout << arr[i] << " ";
}
}
Код с массивом:
#include <iostream>
#include <ctime>
#include <vector>
using namespace std;
int main() {
unsigned short int n;
cin >> n;
short int arr[n];
for (int i = 0; i < n; i++)
{
int k;
cin >> k;
arr[i] = k;
}
for (int i = 0; i < n; i++)
{
if (arr[i] < 0)
cout << arr[i] << " ";
}
cout << endl;
for (int i = 0; i < n; i++)
{
if (arr[i] >= 0)
cout << arr[i] << " ";
}
}