Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
негритос
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 18
#1

Ошибка с итераторами для целочисленного вектора и вектора структуры - C++

04.10.2016, 18:29. Просмотров 164. Ответов 3
Метки нет (Все метки)

Пытаюсь разобраться с векторами. Для динамической работы с памятью вещь, вроде, замечательная и удобная. Только необходимо использовать итераторы, с которыми у меня в программе возникли небольшие проблемы.
Предположим:
мне надо создать целочисленный вектор, записать в него, например, два элемента, далее вывести на экран.
потом создать еще один вектор структуры, содержащей такие поля: аргумент функции и сама функция, зависящая от аргумента.
Так вот, ориентируясь на информацию из Интернета, я написал код:
C++ (Qt)
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
32
33
34
35
36
37
// iteratori.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <vector>
using namespace System;
using namespace std;
 
struct func {
    int x;
    float y;
};
 
void main()
{
    vector<int> a;
    vector<func> b;
    a.push_back(10);
    a.push_back(20);
    for (vector<int>::iterator it0 = a.begin; it0 != a.end; it0++)
    {
        cout << *it0 << endl;
    };
 
    func buf;
    b.push_back(buf);
    b.push_back(buf);
    b.push_back(buf);
 
    for (vector<func>::iterator it1 = b.begin; it1 != b.end; it1++)
    {
        cout << "vvedite iks";
        cin >> *it1.x >> endl;
        *it1.y = *it1.x / *it1.x - 0.1;
    }
}
Но C++ ругается. Во-первых, ругается на 21 строку, пишет "нестандартный синтаксис, используйте & чтобы создать указатель на член". Странно, я делал целиком по другим примерам итераторов.
Во-вторых, пишет, что it1 не содержит поля x и y. Как не пытался - и в скобки (it1.x) брал, и даже знак & ставил - ничего.
Как обращаться к конкретному полю структуры, на которую ссылается итератор?
Пытался найти информацию об Итераторах в Интернете, но почти ничего не нашел. Подскажите, пожалуйста, кто немного разбирается в итераторах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2016, 18:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка с итераторами для целочисленного вектора и вектора структуры (C++):

Ошибка при объявлении вектора- поля структуры - C++
при объявлении вектора полем структуры компилятор выдает ошибку C2059 в месте, где задается размер вектора: причем при объявлении...

Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора - C++
Здравствуйте. Буду очень благодарен,если кто нибудь напишет два кода к этим задачам. Спасибо за внимание. Задача 1. Составить...

Обработка целочисленного вектора - C++
Помогите пж. написать код

Написать функцию для класса, возращающую данный из вектора обьектов класса по итератору вектора - C++
День=добрый как написать функцию для класса возращающую данный из вектора обьектов класса по итератору вектора?? стока запроса: ...

Ошибка при использовании for_each для вектора - C++
Здравствуйте, форумчане,при компиляции возникает ошибка: c:\program files\microsoft visual studio 10.0\vc\include\algorithm(22): error...

Найти сколько элементов первого вектора совпадают с элементами второго вектора - C++
#include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;vector&gt; #include &lt;set&gt; using namespace std; void main() { ...

3
DemolitionMan
99 / 155 / 47
Регистрация: 06.04.2016
Сообщений: 992
04.10.2016, 18:56 #2
Мой C++Builder 6 указал мне на ошибки. Вот эти строки должны быть написаны вот так:
Строка 21:
C++
1
for(vector<int>::iterator it0 = a.begin(); it0 != a.end(); it0++)
Та же самая ошибка и в строке 31, begin() и end() должны быть написаны со скобками:
C++
1
for(vector<func>::iterator it1 = b.begin(); it1 != b.end(); it1++)
Также нужно переписать строки 34 и 35:
C++
1
2
cin >> it1->x;
it1->y = it1->x / it1->x - 0.1;
1
nmcf
04.10.2016, 19:29
  #3

Не по теме:

Цитата Сообщение от DemolitionMan Посмотреть сообщение
Мой C++Builder 6
Весомо.

0
негритос
0 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 18
04.10.2016, 19:31  [ТС] #4
DemolitionMan, уфф, спасибо огромное! Как всегда, все оказалось довольно просто...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2016, 19:31
Привет! Вот еще темы с ответами:

Дан список, элементы которого являются координатами вектора. Найти длину вектора - C++
1. Дан список, элементы которого являются координатами вектора в n-мерном пространстве. Найти длину вектора.

Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5) - C++
Ребята помогите пожалуйста с задачкой. Я сам не шарю в C++, но в этом семестре появился этот предмет! И завтра его надо будет сдать :( Буду...

Ошибка при резервировании памяти для своего(!) вектора - C++
Всем здравствуйте! Возможно, из названия темы не совсем понятен вопрос, поэтому уточню саму суть: Пишу свой шаблонный класс вектора и...

Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора, размещенные после самого элемента вектора А - C++
Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора, размещенные после самого элемента вектора А на начало, а...


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

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

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