Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2015, 14:02   #21
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Чтоб cout выводил значение вектора как int, а не unsigned char.

Можете убрать и посмотреть, что будет выводить cout.
не посмотрел сюда . искренне каюсь.

Код:
vector<unsigned char> vec;
RAFA91 вне форума Ответить с цитированием
Старый 04.08.2015, 15:14   #22
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
Почему при добавлении нового обьекта в vector происходит перезапись

существующих в векторе обьектов в новые области памяти ?
Курите vector::resize.
Да, он может перенести вектор в другую область памяти, в случае нехватки в текущей области. Или вы как думаете, он должен дробиться по адресам?
Довольно, кстати, распространена веселуха, если вы имеете где-то указатель на этот вектор и не переинициализируете его после ресайза.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!

Последний раз редактировалось crazy horse; 04.08.2015 в 15:17.
crazy horse вне форума Ответить с цитированием
Старый 04.08.2015, 16:25   #23
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от crazy horse Посмотреть сообщение
Курите vector::resize.
вспомнил про функцию capacity
RAFA91 вне форума Ответить с цитированием
Старый 05.08.2015, 16:47   #24
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Подскажите пожалуйста, что нужно добавить в код, что-бы вектор мог хранить указатели типа

figure.

Код:
#include <vector>
#include <iostream>
#include <conio.h>


using namespace std;

class figure

{
	public:
	 figure() {}
	 virtual ~figure() {}
	 virtual void area() const = 0;
};
	

class round : public figure

{
	public:
	round() {}
	~round() {}
	 void area() const {printf("\n+++++++++++++\n");}
};


class square : public figure

{
	public:
	square() {}
	~square() {}
	 void area() const {printf("\n!!!!!!!!!!!!!!\n");}
};

template <class T>

void hgj(vector<T> &EmptyClass);


int main()

{
	figure *pfigure1 = new round;
	figure *pfigure2 = new square;
	vector <figure> EmptyClass(2);
	EmptyClass[0] = pfigure1;
	EmptyClass[1] = pfigure2;
	hgj(EmptyClass);
	getch();
	return 0;
}


template <class T>

void hgj(vector<T> &EmptyClass)

{
	for(int i=0;i<EmptyClass.size();i++)
	EmptyClass[i]->area();
}
RAFA91 вне форума Ответить с цитированием
Старый 05.08.2015, 16:56   #25
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Может не понял вопрос, но чтоб вектор хранил указатель на тип figure, то:
Код:
vector <figure*> vec;
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 06.08.2015, 12:35   #26
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Krasiosoft благодарю за помощь !
RAFA91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
vector c++ Alendorff Помощь студентам 3 14.04.2013 14:52
C++ Boost - vector<path> to vector<string> frommars Общие вопросы C/C++ 0 04.02.2013 21:19
<vector> dcPEOP Общие вопросы C/C++ 2 26.01.2012 11:28
#include <vector> GBAXA Visual C++ 12 15.08.2010 11:25
vector NiCola999 Помощь студентам 5 26.02.2010 08:37