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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
#1

Как в vector поместить double, bool? - C++

14.12.2012, 17:13. Просмотров 1611. Ответов 47
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <vector>
using namespace std;
void main()
{
   vector<int> vec;
   double t = -12.34;
   bool b = false;
   vec.push_back(t);//как сюда поместить t?
   vec.push_back(b);//как сюда поместить b?
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
7065 / 5242 / 262
Регистрация: 10.12.2010
Сообщений: 23,062
Записей в блоге: 17
15.12.2012, 17:17     Как в vector поместить double, bool? #41
Но подобный пример с enum и с boost/any не проканает с типами вроде std::string
MrGluck
Ворчун
Эксперт CЭксперт С++
6675 / 3856 / 510
Регистрация: 29.11.2010
Сообщений: 10,215
15.12.2012, 17:20     Как в vector поместить double, bool? #42
Avazart, если честно, кому вообще в С++ кроме ТС может потребоваться написать подобную вещь? (Я про создание вектора или массива с различным типом данных)
Avazart
7065 / 5242 / 262
Регистрация: 10.12.2010
Сообщений: 23,062
Записей в блоге: 17
15.12.2012, 17:21     Как в vector поместить double, bool? #43
Не знаю...

Ну а если например необходимо написать что-то вроде интерпретатора того же php ?
Да и в boost ведь есть any ( и если не ошибаюсь есть еще что-то на эту тему ) значит была необходимость.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 17:27     Как в vector поместить double, bool? #44
Цитата Сообщение от Avazart Посмотреть сообщение
о подобный пример с enum и с boost/any не проканает с типами вроде std::string
Это почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <vector>
#include <boost/any.hpp>
#include <typeinfo>
#include <string>
 
using boost::any_cast;
 
int main()
{
   std::vector<boost::any> vec;
   
   double f = 1.5;
   std::string i = "dasd";
   bool fl = false;
   
   vec.push_back(f);
   vec.push_back(i);
   vec.push_back(fl);
   
   if (vec[1].type() == typeid(std::string))
      std::cout << any_cast<std::string>(vec[1]) << std::endl;
   
   if (vec[0].type() == typeid(std::string))
      std::cout << any_cast<std::string>(vec[0]) << std::endl;
   else
      std::cout << "Error type" << std::endl;
   
}
http://liveworkspace.org/code/3k2s43

Добавлено через 29 секунд
Цитата Сообщение от dqrest Посмотреть сообщение
КАк в vector поместить double, bool?
Да и ТС хочет.
MrGluck
Ворчун
Эксперт CЭксперт С++
6675 / 3856 / 510
Регистрация: 29.11.2010
Сообщений: 10,215
15.12.2012, 17:29     Как в vector поместить double, bool? #45
Цитата Сообщение от Avazart Посмотреть сообщение
Но подобный пример с enum и с boost/any не проканает с типами вроде std::string
Кстати почему?
Converting types that can hold one of a number of possible value types, e.g. int and string,
http://www.boost.org/doc/libs/1_52_0/doc/html/any.html
Avazart
7065 / 5242 / 262
Регистрация: 10.12.2010
Сообщений: 23,062
Записей в блоге: 17
15.12.2012, 17:34     Как в vector поместить double, bool? #46
По ссылке на онлайн компилятор http://liveworkspace.org/code/3k2s43
stdout:
dasd
Error type
go, Код собственно проверяли ?

Builder2009 собственно тоже пишит
[BCC32 Error] any.hpp(35): E2303 Type name expected
Но там как бы буст старый...

Добавлено через 1 минуту
Цитата Сообщение от MrGluck Посмотреть сообщение
Converting types that can hold one of a number of possible value types, e.g. int and string,
Может имеется ввиду массив char-ов ?
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 17:36     Как в vector поместить double, bool? #47
Цитата Сообщение от Avazart Посмотреть сообщение
По ссылке на онлайн компилятор http://liveworkspace.org/code/3k2s43
А Вы код смотрели? Я вывожу правильный результат, а потом как пример пытаюсь кастовать double к std::string.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 17:40     Как в vector поместить double, bool?
Еще ссылки по теме:

C++ Ошибка при использовании vector<bool>
Vector<bool> и visual c++ C++
Преобразование double в bool C++
Как выделить числа double из vector<char> C++
C++ Примерная реализация std vector bool

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

Или воспользуйтесь поиском по форуму:
Avazart
7065 / 5242 / 262
Регистрация: 10.12.2010
Сообщений: 23,062
Записей в блоге: 17
15.12.2012, 17:40     Как в vector поместить double, bool? #48
Ага значит, то ли в старом бусте нельзя было, то ли в Builder кривой буст...
Yandex
Объявления
15.12.2012, 17:40     Как в vector поместить double, bool?
Ответ Создать тему
Опции темы

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