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

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

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

Как получить доступ к элементам вектора - C++

02.05.2014, 21:56. Просмотров 468. Ответов 9
Метки нет (Все метки)

Нашел вот такой код. А вот как получить доступ к элементам вектора?

C++
1
2
3
4
5
6
7
8
9
FILE *ToWrite = fopen("C:\\result.txt", "w+");
    list<string> ids;
    char s[20];
    while(true)
    {
        fgets(s, 20, f);
        ids.push_back(s);
        if(!feof(f))break;
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2014, 21:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как получить доступ к элементам вектора (C++):

Как сделать указатель на структуру и получить так доступ к элементам? - C++
Здравствуйте!Как сделать указатель на структуру и получить так доступ к элементам? #include &lt;iostream&gt; using namespace std; struct...

Как получить доступ к элементам массива работая с ним как с указателем и адресной арифметикой - C++
int array = { {1,2,3}, {1,2},{1,2,3,4}, {1,2,3,4},{1,2,},}; for(int i = 0; i &lt; 25; i++) printf(&quot;%d &quot;, array); ...

Доступ к элементам вектора, который находится в map - C++
День добрый! Нужно ваше экспертное мнение. Я создаю map: std::map&lt;unsigned, std::vector&lt;int&gt;&gt; test_1 ; Затем я добавляю...

Как получить доступ к данным класса, которые являются элементом вектора? - C++
ситуация такая, есть собственноручно написанный Vector есть класс &quot;Person&quot;, с данными (имя, фамилия, возраст) там несколько человек,...

Классы С++, получить доступ из одного класса к элементам другого - C++
Здравствуйте! Объясните пожалуйста, вот имеется у меня два класса,например вот такие: Class A { private: int i; }

Может ли объемлющий класс иметь неограниченный доступ к элементам вложенного класса? А вложенный класс — к элементам объемлющего? - C++
Ответ как бы знаю(нет , да). но наверное я что-то не так понимаю, т.к. примерчик написать не получается. class BaseClass { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Melg
538 / 159 / 64
Регистрация: 23.09.2013
Сообщений: 314
02.05.2014, 22:01 #2
http://www.cplusplus.com/reference/v...vector/vector/

Доступ к элементам последовательных контейнеров чаще всего осуществляется через итераторы.

C++
1
2
3
for (std::vector<std::string>::iterator it = ids.begin(); it != ids.end(); ++it) {
    std::cout << *it;
}
Так же можно получить доступ при помощи вызова функции at с указанием индекса позиции элемента в векторе.

C++
1
2
for (unsigned i=0; i<ids.size(); i++)
    std::cout << ids.at(i);
1
sraf
2 / 2 / 0
Регистрация: 28.02.2010
Сообщений: 46
02.05.2014, 22:10  [ТС] #3
второй вариант дает такую ошибку:
error C2039: 'at' : is not a member of 'std::list<_Ty>'
0
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,428
Записей в блоге: 3
Завершенные тесты: 1
02.05.2014, 22:14 #4
Цитата Сообщение от sraf Посмотреть сообщение
А вот как получить доступ к элементам вектора?
и каким боком тут list тогда?
0
sraf
2 / 2 / 0
Регистрация: 28.02.2010
Сообщений: 46
02.05.2014, 22:19  [ТС] #5
этот пример вот здесь: Функция fopen() для большого текстового файла читает только первую строку
первый вариант идет. я его переделывал как там. Но мне надо например взять конкретную строку и присвоить в переменную
0
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,428
Записей в блоге: 3
Завершенные тесты: 1
02.05.2014, 22:29 #6
Если list, то через итераторы
0
sraf
2 / 2 / 0
Регистрация: 28.02.2010
Сообщений: 46
02.05.2014, 22:32  [ТС] #7
Да, но не могу добратся до конкретной строке
0
Melg
538 / 159 / 64
Регистрация: 23.09.2013
Сообщений: 314
02.05.2014, 22:43 #8
Вы не могли бы уточнить, что Вы имеете ввиду, под словами - не могу добраться? Каким образом вы "добираетесь", и каким образом выясняете, что "не добрались"?
0
sraf
2 / 2 / 0
Регистрация: 28.02.2010
Сообщений: 46
02.05.2014, 22:47  [ТС] #9
Мне надо конкретную строку и присвоить в переменную допустим пятую. Еще нужно парсить
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
02.05.2014, 22:49 #10
берете первый итератор, т.е. list.begin() и инкрементите его 5 раз. или более разумно, используете спец функцию
std::advance:
http://www.cplusplus.com/reference/iterator/advance/
там пример как раз с листом и как раз с доступом к пятому элементу.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2014, 22:49
Привет! Вот еще темы с ответами:

Как получить доступ к элементам формы из созданного класса? - C++
Всем доброго времени суток!:help: Скажите, пожалуйста, как мне обратиться к элементу формы(например TextBox1) извне, то есть из...

Как оптимизировать обращение к элементам вектора? - C++
Добрый день. Подскажите, пожалуйста, где я не прав. Есть класс, в нем координаты и другие параметры, описывающие существ (овцы и...

Обращение к элементам вектора - C++
как обратиться к N=43 строке вектора нумерация с 0 vector&lt;int&gt; myVector;

Обращение к элементам вектора - C++
Вопрос вот в чем. Есть следующий код: #include &lt;vector&gt; #include &lt;iostream&gt; int main() { std::vector&lt;int&gt; a(10, 1); ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.05.2014, 22:49
Ответ Создать тему
Опции темы

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