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

bool vector

25.10.2013, 18:59. Показов 911. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2013, 18:59
Ответы с готовыми решениями:

Vector<bool>
есть задача зайти в if только если весь vector&lt;bool&gt; уже заполнен true как бы это по лучше...

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

Vector<bool> и visual c++
Приветствую, пытаюсь адаптировать консольный исходник алгоритма Хаффмана в форменное приложение...

vector<vector <bool> >
vector&lt;vector &lt;bool&gt; &gt; v1; bool v2 = { {1,1}, {1,1}, }; как v1 присвоить v2? ...

18
5488 / 4883 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2013, 19:09 2
Цитата Сообщение от slipp1 Посмотреть сообщение
здесь ругается. почему??
Не может ввести. Специфика вектора bool. http://alenacpp.blogspot.ru/2005/06/vector.html
0
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
25.10.2013, 19:14 3
А как ты планируешь вводить bool?)
Используй какую-нибудь промежуточную переменную, вводи в нее, а затем ее преобразуй в bool.
Да, и != в цикле может тебе в один прекрасный момент такую свинью подкинуть... < используй, чтоб наверняка.
0
Эксперт С++
8380 / 6141 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.10.2013, 21:08 4
Используй std::vector<char> myBool(10); или std::bitset<>

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

Не по теме:

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

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

Не по теме:

С чего это?

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

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

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

Добавлено через 1 минуту
OhMyGodSoLong, ты говоришь красиво, но бестолково.
0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
27.10.2013, 20:04 10
Цитата Сообщение от castaway Посмотреть сообщение
А в чём проблема то?
В том, что vector<bool> не обязан соблюдать шаблонный интерфейс вектора. Он не обязан возвращать нормальные итераторы. Он не обязан быть идентичным внутри сишному массиву. Именно эта специализация и является ошибкой комитета по стандартизации. Они это признают, но исправлена она не будет никогда, потому что обратная совместимость.
0
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
27.10.2013, 20:07 11
OhMyGodSoLong, наверняка об этом где-то сказано..?
0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
27.10.2013, 20:08 12
В смысле? Проблема, описанная в документации, проблемой быть не перестаёт. И того, что пользоваться vector<bool> не рекомендуется, это не отменяет. Но с этим можно только смириться.
0
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
27.10.2013, 20:10 13
А где это сказано в документации?
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
27.10.2013, 20:11 14
Цитата Сообщение от castaway Посмотреть сообщение
А где это сказано в документации?
о специализации вектора есть в стандарте целая глава.
0
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
27.10.2013, 20:16 15
Цитата Сообщение от Croessmah Посмотреть сообщение
о специализации вектора есть в стандарте целая глава.
Вопрос не о главе о векторах в стандарте, а о том, что
Цитата Сообщение от Avazart Посмотреть сообщение
P.S.: vector<bool> - еще то позорище STL
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
27.10.2013, 20:19 16
Цитата Сообщение от castaway Посмотреть сообщение
Вопрос не о главе о векторах в стандарте, а о том, что
не напишут же в документации что vector<bool> лажа, а в нете тьма статей как раз по данной тематике.
0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
27.10.2013, 20:25 17
Цитата Сообщение от castaway Посмотреть сообщение
А где это сказано в документации?
Там не сказано и то, что два раза вызывать delete не рекомендуется. Но это не значит же, что надо бежать сломя голову так делать.
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
27.10.2013, 20:28 18
Пытались так сказать сделать экономный контейнер, в результате чего получилось так, что контейнер перестал быть контейнером.
0
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
27.10.2013, 20:28 19
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Там не сказано и то, что два раза вызывать delete не рекомендуется.
Это очевидно, вопреки другому..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2013, 20:28
Помогаю со студенческими работами здесь

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru