jobzzoff
@jobzzoff
I wonder how, I wonder why...

Массив или вектор?

Задача про 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] << " ";
	}
}
  • Вопрос задан
  • 872 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rockstardavid
Go/PHP
Вектора аллоцируются в куче, массивы в стэке + вектор динамически расширяемый, что вносит дополнительный оверхед
Вывод делайте сами, рекомендую прочитать хотя бы это и это
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы