9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
1

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

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

Author24 — интернет-сервис помощи студентам
Добрый вечер, форумчане!
Столкнулся вот с такой проблемой. Имеется вектор, заполненный числами, огромной длины. Но почему-то не хочет выводить 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2012, 23:25
Ответы с готовыми решениями:

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

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

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

Обращение к конкретному элементу двумерного вектора
Здравствуйте. Делаю лабу и не могу разобраться в некоторых вопросах. Нужно обратиться к...

14
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
26.09.2012, 23:36 2
А есть ли в нём элемент с таким индексом?
0
Эксперт С++
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
26.09.2012, 23:45 3
Цитата Сообщение от Eugen-S Посмотреть сообщение
Имеется вектор, заполненный числами, огромной длины.
Покажи код заполнения вектора
0
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
Эксперт С++
261 / 191 / 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
9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
26.09.2012, 23:55  [ТС] 6
а это собственно и есть вся программа, 2 цикла. заполняю и вывожу на экран..
выводится 0,1,2....10,11 - Error. вся работа программы.

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

vector<int> arr;
0
Эксперт С++
261 / 191 / 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
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
Эксперт С++
261 / 191 / 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
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
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
Эксперт С++
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2012, 00:15 11
Цитата Сообщение от ValeryS Посмотреть сообщение
опередил
Виноват ))
0
9 / 9 / 1
Регистрация: 06.11.2011
Сообщений: 122
27.09.2012, 00:17  [ТС] 12
хм. об этом еще не слышал. Так а что делает ^ с битами? складывает 2 числа получается? или перемножает?

Добавлено через 1 минуту
о. Валерис - уже ближе)) это знаю)
Ребят, Спасибо за помощь, огромное!
0
Эксперт С++
261 / 191 / 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
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,516
27.09.2012, 00:19 14
Цитата Сообщение от Eugen-S Посмотреть сообщение
Ребят, Спасибо за помощь, огромное!
для спасибы кнопка есть
1
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2012, 00:23
Помогаю со студенческими работами здесь

Обращение к элементу структуры (вектора) без явного указание онного
Доброго времени суток. Вопрос прям подмывает. есть структура struct xx{ int yy; int ww;...

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru