Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Eugen-S
9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
#1

STL . Обращение к 12 элементу вектора - C++

26.09.2012, 23:25. Просмотров 688. Ответов 14
Метки нет (Все метки)

Добрый вечер, форумчане!
Столкнулся вот с такой проблемой. Имеется вектор, заполненный числами, огромной длины. Но почему-то не хочет выводить 12й элемент... Вот соб-но код, пробую уже даже 2мя вариантами обратиться к нему:

C
1
2
3
4
5
for(i=0; i<100; i++)
        {
                cout<<arr.at(i)<<" ";
        cout<<arr[i]<<endl;
    };
Ну и, доходя до 12, программа выкидывает ошибку:
-abort(), has been canceled...

не понимаю чего так. Или может быть я что-то недопонял в работе с вектором?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 23:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос STL . Обращение к 12 элементу вектора (C++):

STL обращение к элементу vector
Помогите исправить ошибку. #include &lt;iostream&gt; #include &lt;vector&gt; using...

STL обращение к элементу list
Помогите исправить ошибку. #include &lt;list&gt; #include &lt;iostream&gt; using...

Обращение к последнему элементу вектора
Здравствуйте, мне нужно сравнить последний элемент вектора с числом и в...

Что быстрее? Обращение к элементу массива или к элементу структуры?
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом...

STL. Функция, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора
у меня есть вектор, помогите пожалуйста дописать функцию, которая будет искать...

Класс-список с доступом к любому элементу (STL)
Нужно написать контейнерный класс список для хранения объектов класса...

14
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,179
26.09.2012, 23:36 #2
А есть ли в нём элемент с таким индексом?
0
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
26.09.2012, 23:45 #3
Цитата Сообщение от Eugen-S Посмотреть сообщение
Имеется вектор, заполненный числами, огромной длины.
Покажи код заполнения вектора
0
Eugen-S
9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
26.09.2012, 23:49  [ТС] #4
Заполнение идет таким образом.

C
1
2
for(int i=0;i<100;i++)
   arr.push_back(i);
Добавлено через 1 минуту
если заполнять insert()-ом, то, выводит те же числа, только в обратном порядке, но тоже на выводе 12ти эррор...
0
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
26.09.2012, 23:51 #5
Цитата Сообщение от Eugen-S Посмотреть сообщение
Заполнение идет таким образом.

C
1
2
for(int i=0;i<100;i++)
   arr.push_back(i);
Добавлено через 1 минуту
если заполнять insert()-ом, то, выводит те же числа, только в обратном порядке, но тоже на выводе 12ти эррор...
Такого не может быть. Приведи, пожалуйста, всю программу.
0
Eugen-S
9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
26.09.2012, 23:55  [ТС] #6
а это собственно и есть вся программа, 2 цикла. заполняю и вывожу на экран..
выводится 0,1,2....10,11 - Error. вся работа программы.

Вектор создается так:

vector<int> arr;
0
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2012, 00:03 #7
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <vector>
 
using namespace std;
 
int main() {
  vector<int> vec;
  for(int i = 0; i < 100; ++i)
    vec.push_back(i);
 
  for(int i = 0; i < 100; ++i)
    cout << vec[i] << " ";
}
У тебя работает ?
0
Eugen-S
9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
27.09.2012, 00:07  [ТС] #8
не поверишь, но ДА! но почему мой не работает?

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
30
31
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <deque>
#include <time.h>
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    vector<int> arr,arr2;
    deque<int> deq,deq2;
 
    int i=0;
    clock_t t=NULL;
 
    //-------------------------------------
 
    for(i=0;i<(10^6);i++)
        arr.push_back(i);
 
    cout<<"After vector push_back: "<<clock()-t/CLOCKS_PER_SEC<<endl;
 
    for(i=0; i<1000; i++)
        {
            cout<<arr.at(i)<<" ";
        cout<<arr[i]<<endl;
    };
 
..........
Дальше пошла работа с очередью...
0
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2012, 00:12 #9
Цитата Сообщение от Eugen-S Посмотреть сообщение
for(i=0;i<(10^6);i++)
* * * * arr.push_back(i);
Вот именно поэтому я и просил показать, как ты заполняешь массив.
^ - он же побитовый XOR.
10^6 = 1010b ^ 0110b = 1100b = 12.
Ты создал массив на 12 элементов.
1
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,225
27.09.2012, 00:14 #10
Цитата Сообщение от Eugen-S Посмотреть сообщение
for(i=0;i<(10^6);i++)
а ты уверен что у тебя счет идет до миллиона
10^6 это не возведение в степень это исключающие или
и число у тебя будет 1010 ^ 110 = 1100 =0x0C= 12
т.е цикл идет до 12

Добавлено через 34 секунды
Andrew_Lvov,
опередил
0
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2012, 00:15 #11
Цитата Сообщение от ValeryS Посмотреть сообщение
опередил
Виноват ))
0
Eugen-S
9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
27.09.2012, 00:17  [ТС] #12
хм. об этом еще не слышал. Так а что делает ^ с битами? складывает 2 числа получается? или перемножает?

Добавлено через 1 минуту
о. Валерис - уже ближе)) это знаю)
Ребят, Спасибо за помощь, огромное!
0
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2012, 00:17 #13
0 ^ 0 => 0
1 ^ 0 => 1
0 ^ 1 => 1
1 ^ 1 => 0
1
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,225
27.09.2012, 00:19 #14
Цитата Сообщение от Eugen-S Посмотреть сообщение
Ребят, Спасибо за помощь, огромное!
для спасибы кнопка есть
1
Eugen-S
9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
27.09.2012, 00:23  [ТС] #15
Цитата Сообщение от Andrew_Lvov Посмотреть сообщение
0 ^ 0 => 0
1 ^ 0 => 1
0 ^ 1 => 1
1 ^ 1 => 0
Это знается, просто забылось как-то) спасибо еще раз!)

Добавлено через 42 секунды
Цитата Сообщение от ValeryS Посмотреть сообщение
для спасибы кнопка есть
я уже
0
27.09.2012, 00:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2012, 00:23
Привет! Вот еще темы с решениями:

Как сделать переход к следующему элементу в STL vector
Есть пример с книги по STL, и я его решил модернизировать: 1) Дописать код...

STL шаблон вектора
можете кинуть ссылку или код STL шаблона vector

STL копирование элементов вектора
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include...

STL Пересечение множества и вектора
Задание представлено так провести синхронизацию, чтобы в vector и map...


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

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

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