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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
#1

bool vector - C++

25.10.2013, 18:59. Просмотров 587. Ответов 18
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
#include <vector>
 
int main()
{
 
  vector<bool> myBool(10);
  
  for(int i=0;i!=myBool.size();++i)
  {
    cin>>myBool[i];//здесь ругается. почему??
  }
 
  return 0;
}
ошибка:
error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::_Vb_reference<_Alloc>' (or there is no acceptable conversion)

Добавлено через 23 минуты
up.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 18:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос bool vector (C++):

Vector<bool> и visual c++ - C++
Приветствую, пытаюсь адаптировать консольный исходник алгоритма Хаффмана в форменное приложение visual Studio 2005 c++. Объявляю вначале...

vector<bool> утверждение - C++
друзья! Страутструп утверждает что проще пареной репы. подскажите как? что то в голову не идет. Как сделать так чтобы элемент вектор бул...

vector<vector <bool> > - C++
vector&lt;vector &lt;bool&gt; &gt; v1; bool v2 = { {1,1}, {1,1}, }; как v1 присвоить v2? Добавлено через 1 минуту в c++11...

Упаковка std :: vector <bool> в байты - C++
Добрый Вечер! возникла проблема: нужно элементы std::vector&lt;bool&gt; упаковать в байты для последующей записи в файл собственно,...

Vector <bool> erase iterator outside range - C++
Помогите, пожалуйста. При компиляции появляется ошибка (фото ниже). Это реализация алгоритма Хаффмана. Не могу понять, что не так, по...

Примерная реализация std vector bool - C++
добрый вечер, не могу найти в сети реализацию st::vector&lt;bool&gt; - есть у кого под рукой?) Почитать)

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2013, 19:09 #2
Цитата Сообщение от slipp1 Посмотреть сообщение
здесь ругается. почему??
Не может ввести. Специфика вектора bool. http://alenacpp.blogspot.ru/2005/06/vector.html
0
monolit
185 / 184 / 22
Регистрация: 24.03.2011
Сообщений: 667
Завершенные тесты: 1
25.10.2013, 19:14 #3
А как ты планируешь вводить bool?)
Используй какую-нибудь промежуточную переменную, вводи в нее, а затем ее преобразуй в bool.
Да, и != в цикле может тебе в один прекрасный момент такую свинью подкинуть... < используй, чтоб наверняка.
0
Avazart
Эксперт С++
7185 / 5359 / 280
Регистрация: 10.12.2010
Сообщений: 23,650
Записей в блоге: 17
25.10.2013, 21:08 #4
Используй std::vector<char> myBool(10); или std::bitset<>

P.S.: vector<bool> - еще то позорище STL
1
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.10.2013, 21:11 #5
Цитата Сообщение от monolit Посмотреть сообщение
Да, и != в цикле может тебе в один прекрасный момент такую свинью подкинуть...
Какую же?
0
monolit
185 / 184 / 22
Регистрация: 24.03.2011
Сообщений: 667
Завершенные тесты: 1
27.10.2013, 18:46 #6
Да все просто. Вдруг переменная i где нибудь в цикле изменится, == никогда не будет, и тогда долго ловить ошибку будешь... Не в этом случае, конечно, но раз написано !=, то с большой долей вероятности так пишете везде, так что..
0
castaway
27.10.2013, 18:54
  #7

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
P.S.: vector<bool> - еще то позорище STL
С чего это?

0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
27.10.2013, 18:59 #8
Цитата Сообщение от castaway Посмотреть сообщение

Не по теме:

С чего это?

Потому что это не вектор, и не bool'ов.

Но да, это не позорище. Это памятник, поставленный в назидание. Показывающий, что надо думать перед тем, как реализовывать гениальные идеи.
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
27.10.2013, 19:09 #9
А в чём проблема то?

Добавлено через 5 минут
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Это памятник, поставленный в назидание. Показывающий, что надо думать перед тем, как реализовывать гениальные идеи.
Если хочется сказать что тип bool глупо использовать в контейнерах - почему бы так и не сказать? Да и причины не плохо бы услышать..
А то, что в этом виноваты шаблоны - чушь собачья.

Добавлено через 1 минуту
OhMyGodSoLong, ты говоришь красиво, но бестолково.
0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
27.10.2013, 20:04 #10
Цитата Сообщение от castaway Посмотреть сообщение
А в чём проблема то?
В том, что vector<bool> не обязан соблюдать шаблонный интерфейс вектора. Он не обязан возвращать нормальные итераторы. Он не обязан быть идентичным внутри сишному массиву. Именно эта специализация и является ошибкой комитета по стандартизации. Они это признают, но исправлена она не будет никогда, потому что обратная совместимость.
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
27.10.2013, 20:07 #11
OhMyGodSoLong, наверняка об этом где-то сказано..?
0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
27.10.2013, 20:08 #12
В смысле? Проблема, описанная в документации, проблемой быть не перестаёт. И того, что пользоваться vector<bool> не рекомендуется, это не отменяет. Но с этим можно только смириться.
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
27.10.2013, 20:10 #13
А где это сказано в документации?
0
Croessmah
Эксперт CЭксперт С++
13205 / 7476 / 839
Регистрация: 27.09.2012
Сообщений: 18,374
Записей в блоге: 3
Завершенные тесты: 1
27.10.2013, 20:11 #14
Цитата Сообщение от castaway Посмотреть сообщение
А где это сказано в документации?
о специализации вектора есть в стандарте целая глава.
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
27.10.2013, 20:16 #15
Цитата Сообщение от Croessmah Посмотреть сообщение
о специализации вектора есть в стандарте целая глава.
Вопрос не о главе о векторах в стандарте, а о том, что
Цитата Сообщение от Avazart Посмотреть сообщение
P.S.: vector<bool> - еще то позорище STL
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2013, 20:16
Привет! Вот еще темы с ответами:

Ошибка при использовании vector<bool> - C++
Текст ошибки (Visual studio 2013): Ошибка 2 error C2440: return: невозможно преобразовать...

Как в vector поместить double, bool? - C++
#include &lt;stdio.h&gt; #include &lt;vector&gt; using namespace std; void main() { vector&lt;int&gt; vec; double t = -12.34; bool b =...

Ребята есть ли метод vector <bool> записать в бинарный файл? - C++
Всем доброго времени. Возник вопрос есть ли такой хитрый способ чтоб можно было записать в бинарник значения булл имеем vector &lt;bool&gt;...

Ошибка “vector<bool> erase iterator outside range” при работе алгоритма Хаффмана - C++
Проблема с функцией BuildTable. Компилируется, но в процессе работы возникает ошибка. // Huffmann.cpp: определяет точку входа для...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.10.2013, 20:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru