Форум программистов, компьютерный форум CyberForum.ru

Выбивает при создании вектора - C++

Восстановить пароль Регистрация
 
wwmwwm
 Аватар для wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
22.07.2013, 20:17     Выбивает при создании вектора #1
Мне нужно считать сначала, цифру означающую количество строк, в каждой из которых есть по 3 цифры. Я создаю вектор размера a*3 - где а - количество строк. Например если а=4, то вектор должен быть 4*3=12. Но когда я создал вектор, и запустил программу,выбивает экран, Debug error. error has been called.
C++
1
vector<int> b(a*3);
- что тут не так? Вот вся программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iomanip>
#include<iostream>
#include<vector>
#include<algorithm>
#include<fstream>
 
using namespace std;
 
int main()
{
freopen("INPUT.TXT", "r", stdin);
freopen("OUTPUT.TXT", "w", stdout);
    int a, max = 0;
scanf("%d", &a);
vector<int> b(a*3);
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.07.2013, 22:19     Выбивает при создании вектора #2
wwmwwm, так может у Вас в INPUT.TXT хлам какой-то. Зачем вообще такой гибрид с freopen, scanf, vector? Почему нельзя писать в одной стиле?
wwmwwm
 Аватар для wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
22.07.2013, 22:23  [ТС]     Выбивает при создании вектора #3
Цитата Сообщение от Tulosba Посмотреть сообщение
wwmwwm, так может у Вас в INPUT.TXT хлам какой-то. Зачем вообще такой гибрид с freopen, scanf, vector? Почему нельзя писать в одной стиле?
В смысле гибрид? Можно по-подробнее?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 02:33     Выбивает при создании вектора #4
Цитата Сообщение от wwmwwm Посмотреть сообщение
В смысле гибрид?
С + С++ + STL.
BigProgrammer
38 / 38 / 3
Регистрация: 20.07.2013
Сообщений: 105
23.07.2013, 03:41     Выбивает при создании вектора #5
Цитата Сообщение от wwmwwm Посмотреть сообщение
Код C++
1
vector<int> b(a*3);
- что тут не так? Вот вся программа:
Код C++
Советую поставить брейкпойнт на эту инструкцию и посмотреть значение a перед её выполнением.

Добавлено через 2 минуты
Цитата Сообщение от wwmwwm Посмотреть сообщение
В смысле гибрид? Можно по-подробнее?
Имеется ввиду, что лучше использрвать cin и cout вместо stdin и stdout, и классы ifstream и ofstream вместо freopen.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 03:46     Выбивает при создании вектора #6
Ошибку ТС, вроде бы, нашёл: Visual studio не пашет
BigProgrammer
38 / 38 / 3
Регистрация: 20.07.2013
Сообщений: 105
23.07.2013, 03:57     Выбивает при создании вектора #7
Хотя, если важна скорость, то, может быть, и стоит смешивать стиль С и стиль С++.
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
23.07.2013, 09:36     Выбивает при создании вектора #8
BigProgrammer, если так важна скорость то не стоит вмешивать С++, проверено. Нужна скорость чистый С. Да и просто мешать стили, как-то плохо.
BigProgrammer
38 / 38 / 3
Регистрация: 20.07.2013
Сообщений: 105
29.08.2013, 20:20     Выбивает при создании вектора #9
Wolkodav, Вообще-то, если важна только скорость, то лучше писать на машинном языке программирования (ассембелере). Часто пишут на высокоуровневых языках программирования, потому что важна не только скорость, но и удобство разработки. Можно писать части программы, чувствительные к скорости, на С, а чувствительные к удобстве разработки - на С++. Ничего не плохого в смешивании стилей, если это позволяет получить необходимый баланс скорости и удобства разроботки.
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
29.08.2013, 20:34     Выбивает при создании вектора #10
BigProgrammer, ну тогда напишите большой проект в смешанном стиле Раз говорят, что плохо, значит кто то на горьком опыте испытал, то что говорит. Смешивать молоко с огурцами я бы не стал рисковать
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
30.08.2013, 10:29     Выбивает при создании вектора #11
BigProgrammer, если честно, то дописывания С++ для скорости на С, как-то не встречал, asm вставки видел, но смешивание стилей никогда не будет хорошо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2013, 11:39     Выбивает при создании вектора
Еще ссылки по теме:

Компьютер при исчислениях ненадолго виснет и иногда выбивает число nan C++
C++ Ошибка при создании DLL
Конструктор при создании через [] C++

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
30.08.2013, 11:39     Выбивает при создании вектора
  #12
 Комментарий модератора 
Не забываем, что изначальная тема была починка конкретной программы в конкретном месте. А не очередное рассуждение о смешении языков.
Yandex
Объявления
30.08.2013, 11:39     Выбивает при создании вектора
Ответ Создать тему
Опции темы

Текущее время: 12:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru