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

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

Войти
Регистрация
Восстановить пароль
 
Pro100Tom
69 / 28 / 7
Регистрация: 29.10.2012
Сообщений: 328
#1

Изменение значение элементов листа - C++

21.09.2013, 23:48. Просмотров 424. Ответов 5
Метки нет (Все метки)

Здрасьте. Есть лист, а точнее его адрес:
C++
1
2
void MatrixClass::BuildTransformationMatrix(list<VertexClass> *vList)
{
Как добраться до его элементов и изменить их? Читал про итераторы, но как обычно фиг там разберешься...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2013, 23:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменение значение элементов листа (C++):

Найти значение 3-го по величине элемента и значение всех элементов массива, которые его превышают, заменить на найденное значение - C++
Работа с массивами:

из листа клетчатой бумаги N*N клеток вырезали М клеток . на сколько кусков распадается оставшаяся часть листа? - C++
условие:из листа клетчатой бумаги N*N клеток вырезали М клеток . на сколько кусков распадается оставшаяся часть листа? Первая строка...

в массиве . найти произведение ненулевых элементов, количество элементов, превышающих значение среднего арифметического элементов массива - C++
В массиве Х(N) найти произведение ненулевых элементов, количество элементов, превышающих значение среднего арифметического элементов...

в массиве . найти произведение нулевых элементов, количество элементов, превышающих значение среднего арифметического элементов массива - C++
В массиве Х(N) найти произведение нулевых элементов, количество элементов, превышающих значение среднего арифметического элементов массива....

В одномерном массиве определить среднее значение всех элементов,значение которых превышает среднее значение - C++
в произвольно заданном одномерном массиве определить среднее значение всех элементов,значение которых превышает среднее значение

Изменение значение указателя в цикле - C++
Добрый день! У меня возникла проблема следущего характера: в цикле for (i=0;i&lt;(n*n);i++) у меня сбивается указатель, тоесть при i=4,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2013, 00:35 #2
C++
1
2
3
4
5
6
7
8
void f(std::list<int> *vList)
{
     std::list<int>::iterator it = vList ->begin();
     for ( ; it != vList ->end(); ++it)
     {
        *it += 3;
     }
}
Pro100Tom
69 / 28 / 7
Регистрация: 29.10.2012
Сообщений: 328
22.09.2013, 01:00  [ТС] #3
Спасибо большое, сделал вот так:
C++
1
2
3
4
5
6
7
VertexClass *tempVertex;
    tempVertex = new VertexClass();
    list<VertexClass>::iterator it = vList->begin();
    for (it = vList->begin() ; it != vList ->end(); ++it)
    {
        *it = *tempVertex;
    }
Вроде работает! Мне интересно, сколько примерно вам времени нужно было потратить чтобы изучить так С++? Знаю не по теме, просто я изучаю второй год и каждый раз что-то новое непонятное вылезает.
gray_fox
What a waste!
1511 / 1214 / 69
Регистрация: 21.04.2012
Сообщений: 2,550
Завершенные тесты: 3
22.09.2013, 01:06 #4
Цитата Сообщение от Pro100Tom Посмотреть сообщение
Спасибо большое, сделал вот так:
Можно так:
C++
1
std::fill(vList.begin(), vList.end(), VertexClass());
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2013, 01:10 #5
it два раза инициализировать не нужно.

Не по теме:

Цитата Сообщение от Pro100Tom Посмотреть сообщение
чтобы изучить так С++?
Я плохо знаю С++.
Цитата Сообщение от Pro100Tom Посмотреть сообщение
и каждый раз что-то новое непонятное вылезает.
И у меня так.

Pro100Tom
69 / 28 / 7
Регистрация: 29.10.2012
Сообщений: 328
22.09.2013, 02:40  [ТС] #6
Цитата Сообщение от alsav22 Посмотреть сообщение
it два раза инициализировать не нужно.
Да, вы правы, я просто сначала плохо debug выполнил, подумал, что не совсем правильно считывает элементы). Перед тем как пожаловаться на проблему, перепроверил еще раз. Оказалось, все нормально работает). Исправил инициализацию, теперь один раз инициализирует, как у вас в примере.

Добавлено через 1 час 18 минут
Люди, а вот еще вопрос. Хочу избежать создания лишней переменной. Вот у меня есть точки, которые я считываю с файла. У каждой точки, по три значения. Я потом каждую пропускаю через матрицу. Если перезаписывать эти точки, то выходит так, что... В общем допустим оригинальное число было '2'. А матрица умножает его на 4. То результат будет 8. И я перезаписываю это значение в старую переменную. Таким образом цифра '2' вообще исчезнет. Проблема в том, что мне нужно перемножить эту двойку снова в следующим фрейме скажем на 4.1. Но поскольку, я перезаписал ее значение на 8, то я получу результат (8*4.1 = 32.8), а не 8.4. Понятно, что можно создать переменную запасную. Но я хочу узнать, есть ли способ восстановить значене переменной в определенное время. И если можно, то окупится ли это по скорости? (Да, знаю для рисования 3д моделей лучше использовать гл и директ, но мне сейчас чистый С++ нужен). Спасибо заранее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 02:40
Привет! Вот еще темы с ответами:

Изменение значение аргумента в void-функции - C++
Здраствуйте. У меня к вам будет такой вопрос: void read(Tbig a){ .... .... } В процедуре например там мы что-то делаем... Но...

Изменение значение переменной в одном выражении - C++
Доброго утра! Написала такую нехитрую программку, посмотреть что будет, если вычислить j++ * ++j/j-- * --j... и тут я в ступоре....(((...

Вычислить среднеарифметическое значение элементов массива и определить минимальное положительное значение - C++
Необходимо сформировать двумерный массив A(3x9), используя генератор случайных чисел на интервале (-4, 4). Далее преобразовать массив А в...

Найти столбик, в котором среднее арифметическое значение из положительных элементов имеет минимальное значение - C++
Никак не могу понять задачу, помогите написать программу, очень нужно ! В части матрицы, расположенной под вспомогательной диагональю,...


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

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

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