Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/75: Рейтинг темы: голосов - 75, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 18.02.2018
Сообщений: 112

Заполнить вектор с клавиатуры, не зная размера

19.02.2018, 18:09. Показов 15229. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Я вот хочу заполнить вектор с клавиатуры. Я уже знаю, как его заполнить с клавиатуры, не зная размер вектора.
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    int del;
    vector<int> h;
    while (cin >> del) h.push_back(del);
        for(int i = 0; i < h.size(); i++) cout << h[i] << " ";
}
Но я делал это с помощью cin и cout. Так вот что я хочу, напишите мне такой же код, только cin и cout подменить на scanf и printf.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2018, 18:09
Ответы с готовыми решениями:

Как заполнить вектор с клавиатуры?
#include&lt;iostream&gt; #include&lt;vector&gt; using namespace std; int main() { vector&lt;int&gt; myVector; int a; cin &gt;&gt; a; for (int i =...

Заполнить матрицу произвольного размера с клавиатуры. найти в матрице столбец с минимальным значением произведения элементов
Заполнить матрицу произвольного размера с клавиатуры. найти в матрице столбец с минимальным значением произведения элементов

Как заполнить вектор на вектор классов
#include &lt;iostream&gt; #include &lt;vector&gt; class Num { private: int m_num; public: Num(int num) { num =...

15
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
19.02.2018, 18:16
Цитата Сообщение от msz301005 Посмотреть сообщение
cin и cout подменить на scanf
Вообще-то, работая с векторами Вы используете STL, в которую также входит iostream.
Соответственно, использование printf и scanf является нонсенсом
C++
1
2
3
 while (scanf("%d",&del)==1) h.push_back(del);
        for(int i = 0; i < h.size(); i++) 
             printf(" %d",h[i]);
0
0 / 0 / 1
Регистрация: 18.02.2018
Сообщений: 112
19.02.2018, 18:18  [ТС]
Ну, то есть нельзя printf и scanf?
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
19.02.2018, 18:21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<isotream>
#include<vector>
#include<algorithm>
#include<iterator>
using namespace std;
 
int main()
{
    vector<int> v;
    copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(v));
    copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от msz301005 Посмотреть сообщение
Ну, то есть нельзя printf и scanf?
какой то изврат контейнер с С++ а функции для считывания вывода из С
0
0 / 0 / 1
Регистрация: 18.02.2018
Сообщений: 112
19.02.2018, 18:22  [ТС]
Просто я решаю такую задачу.
И у меня там пишет time limit на 11 тесте

Задана последовательность целых чисел. Числа нумеруются по порядку следования, начиная с единицы.

Требуется написать программу, которая найдет сумму максимума из чисел с четными номерами и минимума из чисел с нечетными номерами – max{a2, a4, …}+min{a1, a3, …}.

Входные данные
Входной текстовый файл INPUT.TXT содержит в единственной строке последовательность от 2 до 2×105 целых чисел, которые по модулю не превышают 10000.

Выходные данные
Выходной текстовый файл OUTPUT.TXT должен содержать одно целое число - сумму максимума из чисел с четными номерами и минимума из чисел с нечетными номерами.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.02.2018, 18:23
Цитата Сообщение от zss Посмотреть сообщение
Вы используете STL, в которую также входит iostream
STL и iostream - диаметрально противоположные вещи.
За общепринятым понятием STL понимают набор стандартных шаблонов функций и шаблонов классов для алгоритмов и контейнеров.
iostream - отвечает за ввод/вывод данных. И это не входит в понятие "STL".

Другое дело, что мешать сишные функции ввода/вывода и плюсовые контейнеры - моветон (сейчас в мою сторону полетят помидоры).
printf/scanf можно использовать с std::vector, но должна быть весомая причина для такого необычного соития.
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.02.2018, 18:24
Дать бы по шапке, все нервы вымотал.
Создать массив, не задавая ему размера
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.02.2018, 18:25
Цитата Сообщение от msz301005 Посмотреть сообщение
Ну, то есть нельзя printf и scanf?
Можно, но не желательно.

Добавлено через 49 секунд
Цитата Сообщение от мановар Посмотреть сообщение
Дать бы по шапке, все нервы вымотал.
Создать массив, не задавая ему размера
msz301005, почему бы вам просто не создать тему в си?
0
0 / 0 / 1
Регистрация: 18.02.2018
Сообщений: 112
19.02.2018, 18:27  [ТС]
Цитата Сообщение от MrGluck Посмотреть сообщение
Можно, но не желательно.
А напишите код?
у меня такой код


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
    int del;
    vector<int> h;
    while (cin >> del) h.push_back(del);
    int max = h[1], min = h[0];
    for(int i = 1; i < h.size(); i += 2)
    {
        if(h[i] > max)
        max = h[i];
    }
    for(int i = 0; i < h.size(); i += 2)
    {
        if(h[i] < min)
           min = h[i]; 
    }
    cout << max + min << endl;
    return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.02.2018, 18:28
Цитата Сообщение от msz301005 Посмотреть сообщение
Просто я решаю такую задачу.
И у меня там пишет time limit на 11 тесте
Замена ввода на printf/scanf не решит эту проблему. Там важен алгоритм.
0
0 / 0 / 1
Регистрация: 18.02.2018
Сообщений: 112
19.02.2018, 18:30  [ТС]
А, понятно, а то я просто знаю, что scanf и printf немного быстрее работает, чем cout и cin и хотел поменять, чтобы уложиться в секунду
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
19.02.2018, 18:32
Цитата Сообщение от msz301005 Посмотреть сообщение
А, понятно, а то я просто знаю, что scanf и printf немного быстрее работает, чем cout и cin и хотел поменять, чтобы уложиться в секунду
вот теперь я поржал, спасибо чужими руками в секунду уложиться хотите?))))))))))) что то новенькое))
0
0 / 0 / 1
Регистрация: 18.02.2018
Сообщений: 112
19.02.2018, 18:37  [ТС]
Может, мой алгоритм не такой хороший

Добавлено через 2 минуты
Цитата Сообщение от 1Вирт1 Посмотреть сообщение
вот теперь я поржал, спасибо чужими руками в секунду уложиться хотите?))))))))))) что то новенькое))
А что смешного? Я имею в виду, чтобы прога уложилась в секунду. А моя прога чуть дольше работает. Поэтому и пишет time limit на 11 тесте
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.02.2018, 18:40
msz301005, скиньте ссылку на задание
0
0 / 0 / 1
Регистрация: 18.02.2018
Сообщений: 112
19.02.2018, 20:30  [ТС]
MrGluck, Вот

Добавлено через 49 секунд
Блин, ссылка блокируется.

Добавлено через 1 минуту
Могу сказать, что задача из acmp и задача называется вот так
ЗАДАЧА №272
Сумма максимума и минимума
(Время: 1 сек. Память: 16 Мб Сложность: 26%)

Добавлено через 5 минут
Всё, моя задача прошла
Дело было в том, что я просто поменял компилятор, и у меня код отработал в 2 раза быстрее
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
19.02.2018, 20:37
Этих сайтов уже цела коллекция.
zzzhttps://*****a c m p.r u***/index.asp?main=task&id_task=272
Блокирует. Звездочки с пробелами убрать, но и в начале тоже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2018, 20:37
Помогаю со студенческими работами здесь

Ввод массива не зная размера
В языке Си это делается так. while(scanf(&quot;%d&quot;, &amp;a)!=EOF) А как сделать то же самое на C++?

Как на VC++ заполнить вектор с клавиатуры?
В приведенной ниже задаче значения вектора X и (или) Y задаются вводом; n — размер каждого из векторов X и Y. Найти среднее...

Найти вектор x,зная что вектор x перпендикулярен вектору a
3)Найти вектор x,зная что вектор x перпендикулярен вектору a,a=(1;0;1),вектор x перпендикулярен вектору b,b=(0;2;-1),проекция вектора x на...

Заполнить с клавиатуры массив словами разного размера и заменяет в нем самое длинное слово на "МАХ"
Напишите программу, которая заполняет с клавиатуры массив А(3,3) словами разного размера и заменяет в нем максимальное по длине слово на...

Задать матрицу A размера 10x10, вектор y размера 10
За ранее огромное спасибо)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru