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

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

Войти
Регистрация
Восстановить пароль
 
KV-1
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 20
#1

Vector - C++

06.11.2013, 12:15. Просмотров 394. Ответов 12
Метки нет (Все метки)

Создаю вектор
C++
1
vector<char*> ArrAns(1);
в одном из файлов .cpp. Используется он функциями, описанными в этом файле, и в файле Form2.cpp, куда он включён
C++
1
extern vector<char*> ArrAns;
Проблема в том, что когда я через F10 запускаю программу(по шагам) и она заходит на первый шаг, в векторе ArrAns уже находится более миллиона(?!) элементов. Притом я не менял его, ведь первый шаг
C++
1
2
3
    // Включение визуальных эффектов Windows XP до создания каких-либо элементов управления
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 12:15     Vector
Посмотрите здесь:

vector<vector<double>> => 2 * vector<vector<double>> - C++
Здравствуйте. У меня следующий вопрос. Имеется двумерный массив, созданный через класс vector&lt;vector&lt;double&gt;&gt; и пусть последний столбец...

Vector - C++
Подскажите пожалуйста, есть какая-нибудь функция в vector для инвертирования строк? Заранее спасибо!!!

vector - C++
допустим есть вектор vector &lt;pair &lt;vector &lt;int&gt;, int&gt; &gt; v вызываем функцию sort() sort(v.begin(), v.end()) как она сортирует?? ...

vector - C++
Объявляю двумерный массив следующим образом: vector&lt; vector &lt;int&gt; &gt; m_Mas; Как в таком случае нужно добавлять элементы и обращаться к...

Vector - C++
Помогите пожалуйста решить задачу при помощи STL. Дан вектор. Нужно найти максимальное количество подряд идущих нулей. без использования...

vector - C++
vector &lt;int&gt; v; for (int i = 0; i &lt; 5; i++) { int temp; cin &gt;&gt; temp; v.push_back(temp); } можно как-нибудь по...

Vector - C++
Помогите написать класс vector по типу шаблона vector

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.11.2013, 12:23     Vector #2
Сборка - релиз или дебаг?
KV-1
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 20
06.11.2013, 12:24  [ТС]     Vector #3
Дебаг. В Release то же самое, кстати.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.11.2013, 12:27     Vector #4
Цитата Сообщение от KV-1 Посмотреть сообщение
vector<char*> ArrAns(1);
а это где записано? внутри какого-нибудь класса/функции? или отдельно от кода
KV-1
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 20
06.11.2013, 12:30  [ТС]     Vector #5
Отдельно от кода. Глобальная переменная.
Кстати, это написано с использованием CLR. Другая программа использует Win32 формы, код тот же, но всё работает.
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
06.11.2013, 12:30     Vector #6
Возможно причина в компиляторе. Некоторые компиляторы резервируют достаточно большой блок памяти для объектов класса vector. Попробуйте зарезервировать в ручную нужный вам размер вектора и посмотрим, что получится:
C++
1
2
std::vector<int> vec;
vec.reserve(/*Размер вектора*/);
Либо проверить в ручную тот же размер:
C++
1
size_type len = vec.capacity();
KV-1
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 20
06.11.2013, 12:35  [ТС]     Vector #7
Ни reserve, ни resize не меняют размер. Точнее, и до и после компилятор говорит, что "Элемент содержит более 1000000 дочерних элементов". Visual Studio 2012, если что.
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
06.11.2013, 12:37     Vector #8
Цитата Сообщение от KV-1 Посмотреть сообщение
Ни reserve, ни resize не меняют размер. Точнее, и до и после компилятор говорит, что "Элемент содержит более 1000000 дочерних элементов". Visual Studio 2012, если что.
Эти методы не могут сделать массив меньше. Проверте размер и если он действительно такой то остается только руки поотбивать компилятору... (в том смысле что у меня других идей нет...)
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,056
Завершенные тесты: 1
06.11.2013, 13:30     Vector #9
Цитата Сообщение от KV-1 Посмотреть сообщение
ArrAns уже находится более миллиона(?!) элементов.
это что size() столько выдает или как?
KV-1
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 20
06.11.2013, 13:35  [ТС]     Vector #10
Цитата Сообщение от KV-1 Посмотреть сообщение
компилятор говорит, что "Элемент содержит более 1000000 дочерних элементов".
Вот как.

Кстати,
C++
1
unsigned long long int asdfg = ArrAns.capacity();
не воспринимается как оператор и пропускается...

Сейчас я пытаюсь исправить Visual Studio(кнопка Исправить у инсталлятора). Быть может, всё из-за того, что компилятор сломался.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.11.2013, 14:37     Vector #11
Что значит не воспринимается как оператор? Запускаем в дебаге, где никаких оптимизаций нет. Прописываем подобный вызов в какой-нибудь функции, заходим в нее и смотрим, что записалось в перемнную
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
06.11.2013, 16:33     Vector #12
Попробуйте вместо указателя на char поместить в контейнер обекты класса string, если это возможно. Я недавно изучаю STL, но кажется контейнер vector не сильно дружит с указателями. Хотя может я и ошибаюсь... однако мысль...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 18:15     Vector
Еще ссылки по теме:

Vector в vector - C++
Имеется структура вида std::vector&lt;std::vector&lt;int&gt; &gt; globals; Вопрос: если мне требуется очистить globals, мне достаточно вызвать...

Vector - C++
Помогите пожалуйста понять как обращатся к переменным членам класса через vector пример: #include&lt;iostream&gt; #include&lt;vector&gt; ...

vector - C++
Как я понял в С++ vector это замена динамическому массиву, как в Delphi ss : array of String; Только тут vector &lt;string&gt; ss; ...

[B]Vector C++[/B] - C++
Только начал изучать вектор в C++, но возникла проблема в коде, хотя переписал прямо из учебника. Сама ошибка: &quot;vector: необъявленный...

vector - C++
подскажите , что не так int s=10; vector &lt;vector&lt;string&gt;&gt; B; for(int i=0; i &lt; s; ++i) { for(int r=0; r &lt; 1; ++r) { ...


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

Или воспользуйтесь поиском по форуму:
KV-1
2 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 20
06.11.2013, 18:15  [ТС]     Vector #13
ArrAns.size() и ArrAns.capacity() имеют значения 1.

Главное то, что тот же код у меня в другой программе работает, а в этой, с CLR - нет.
Yandex
Объявления
06.11.2013, 18:15     Vector
Ответ Создать тему
Опции темы

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