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

Как сделать так, чтобы программа не компилилась, хотя синтаксически была бы правильной? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему MS-DOS не любит кириллицу ? (Или почему она не любит меня ?) http://www.cyberforum.ru/cpp-beginners/thread406909.html
Здравствуйте Почему MS-DOS не любит кириллицу ? У меня есть несколько консольных проектор различной сложности. Почти везде использовал setlocale, "" .... но есть одна очень очень не приятная вещь... При работе в простых проектах (без определения собственных классов) ввод и вывод инф-и прекрасно работает, Но стоит добавить свой класс и реализовать через него ввод и вывод инф-ы в...
C++ Найти количество цифр в файле Здраствуйте! Помогите пожалуйста написать программу на С. Найти количество цифр в файле. Файл загружаем из ранее созданных. (например 1.тхт). Заранее огромное спасибо за помощь! http://www.cyberforum.ru/cpp-beginners/thread406902.html
C++ Удалить прилагательные из текста
Здравствуйте, помогите пожалуйста написать программы в с++. 1 программа. Сортировка массива. Условия сортировки: а) Кратно 2 б) Представимо в виде 2 в степени n в) По убыванию 2 программа. Удалить прилагательные из текста.
Классы с++ C++
#include<iostream.h> #include<math.h> #include<conio.h> #include<string.h> enum shape {prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body { private:
C++ В создании нового массива ошибка. Подскажите. http://www.cyberforum.ru/cpp-beginners/thread406876.html
#include<conio.h> #include<stdio.h> #include<alloc.h> #include<stdlib.h> #include<string.h> #pragma hdrstop #pragma argsused using namespace std; struct F {char name;
C++ База данных, годные детали Здравствуйте, помогите дописать программу. Нужно найти кол-во годных деталей, дано кол-во всего деталей сколько было и кол-во бракован. деталей. Не работает функция расчёт (raschet), не знаю как исправить её... Файл заголовков //файл заголовков Zag.h #ifndef Zag #define Zag #include <iostream> using std::cout; using std::cin; using std::cerr; подробнее

Показать сообщение отдельно
kravam
быдлокодер
1695 / 874 / 44
Регистрация: 04.06.2008
Сообщений: 5,340
14.12.2011, 21:51  [ТС]     Как сделать так, чтобы программа не компилилась, хотя синтаксически была бы правильной?
Ну у меня просто есть хитрая структура, которая состоит из двух векторов: из вектора значений int и из вектора индексов вектора значений.
struct str {
vector <int> znach;
vector <int> index;
}

Второй вектор очень важен, он изменяется вот в такой функции
C++
1
2
3
f (&str) {
 //здесь всякие хитрые действия, изменяющие вектор индексов по определённому правилу
}
Следовательно, очень важно правильно инициализировать вектор индексов значениями от 0 до размера вектора значений
C++
1
2
3
4
5
6
7
То есть инициализируем ветор значений:
str.push_back (20);
str.push_back (25);
str.push_back (19);
 
 
//А тут просто вызов функции, которая смотрит размер вектора str.znach и согласно ему //инициализирует ветор индексов. Без пролем
Всё ясно, надеюсь? То есть вектор индексов по-любому должен быть равен размеру вектора значений. А теперь представим, что я лажанулся и написал так:

C++
1
2
3
4
5
6
7
8
9
То есть инициализируем ветор значений:
str.push_back (20);
 str.push_back (25);
 str.push_back (19);
 
 
//А тут просто вызов функции, которая смотрит размер вектора str.znach и  согласно ему //инициализирует ветор индексов. Без пролем
 
str.push_back (67);
А вот тут и получается, что у меня вектор индексов меньше вектора значений, а это плохо вот и хочется чтобы компилятор ругнулся на последний вызов str.push_back (19);

...Так-то я щас сделал так: при каждом увеличении вектора значений вектор индексов автоматом увеличивается на единицу соответствущим значением. Но мне пришлось для этого усложнять структуру, писать специальную функцию push_back_(), то есть теперь так:
C++
1
2
3
str.push_back_ (20); //вектор индексов автоматом увеличился
  str.push_back_ (25); //то же самое
  str.push_back_ (19); //то же самое
Вроде всё ничё, но хотелось бы всё же обойтись минимум наворотов, к коим я отношу push_back_, хочется обойтись простым push_back.

Добавлено через 2 минуты
В первом и втором примерах надо писать так:

C++
1
2
3
str.znach.push_back (20);
str.znach.push_back (25);
str.znach.push_back (19)
 
Текущее время: 05:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru