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

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

Восстановить пароль Регистрация
 
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
26.09.2012, 23:25     STL . Обращение к 12 элементу вектора #1
Добрый вечер, форумчане!
Столкнулся вот с такой проблемой. Имеется вектор, заполненный числами, огромной длины. Но почему-то не хочет выводить 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...

не понимаю чего так. Или может быть я что-то недопонял в работе с вектором?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
26.09.2012, 23:36     STL . Обращение к 12 элементу вектора #2
А есть ли в нём элемент с таким индексом?
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
26.09.2012, 23:45     STL . Обращение к 12 элементу вектора #3
Цитата Сообщение от Eugen-S Посмотреть сообщение
Имеется вектор, заполненный числами, огромной длины.
Покажи код заполнения вектора
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
26.09.2012, 23:49  [ТС]     STL . Обращение к 12 элементу вектора #4
Заполнение идет таким образом.

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

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

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

vector<int> arr;
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
27.09.2012, 00:03     STL . Обращение к 12 элементу вектора #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] << " ";
}
У тебя работает ?
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
27.09.2012, 00:07  [ТС]     STL . Обращение к 12 элементу вектора #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;
    };
 
..........
Дальше пошла работа с очередью...
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
27.09.2012, 00:12     STL . Обращение к 12 элементу вектора #9
Цитата Сообщение от Eugen-S Посмотреть сообщение
for(i=0;i<(10^6);i++)
* * * * arr.push_back(i);
Вот именно поэтому я и просил показать, как ты заполняешь массив.
^ - он же побитовый XOR.
10^6 = 1010b ^ 0110b = 1100b = 12.
Ты создал массив на 12 элементов.
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
27.09.2012, 00:14     STL . Обращение к 12 элементу вектора #10
Цитата Сообщение от Eugen-S Посмотреть сообщение
for(i=0;i<(10^6);i++)
а ты уверен что у тебя счет идет до миллиона
10^6 это не возведение в степень это исключающие или
и число у тебя будет 1010 ^ 110 = 1100 =0x0C= 12
т.е цикл идет до 12

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

Добавлено через 1 минуту
о. Валерис - уже ближе)) это знаю)
Ребят, Спасибо за помощь, огромное!
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
27.09.2012, 00:17     STL . Обращение к 12 элементу вектора #13
0 ^ 0 => 0
1 ^ 0 => 1
0 ^ 1 => 1
1 ^ 1 => 0
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
27.09.2012, 00:19     STL . Обращение к 12 элементу вектора #14
Цитата Сообщение от Eugen-S Посмотреть сообщение
Ребят, Спасибо за помощь, огромное!
для спасибы кнопка есть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2012, 00:23     STL . Обращение к 12 элементу вектора
Еще ссылки по теме:

STL Пересечение множества и вектора C++
Обращение к элементу матрицы C++
C++ Что быстрее? Обращение к элементу массива или к элементу структуры?

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

Или воспользуйтесь поиском по форуму:
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
27.09.2012, 00:23  [ТС]     STL . Обращение к 12 элементу вектора #15
Цитата Сообщение от Andrew_Lvov Посмотреть сообщение
0 ^ 0 => 0
1 ^ 0 => 1
0 ^ 1 => 1
1 ^ 1 => 0
Это знается, просто забылось как-то) спасибо еще раз!)

Добавлено через 42 секунды
Цитата Сообщение от ValeryS Посмотреть сообщение
для спасибы кнопка есть
я уже
Yandex
Объявления
27.09.2012, 00:23     STL . Обращение к 12 элементу вектора
Ответ Создать тему
Опции темы

Текущее время: 00:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru