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

Массив-ссылка на некоторые элементы другого массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Где кодоблоки по дефолту ищут головы? http://www.cyberforum.ru/cpp-beginners/thread857500.html
Предположим, есть строчка #include <string>. Из какого каталога эта голова инкладится? Где эта настройка валяется?
C++ Сформировать новый массив, состоящий только из нечетных элементов больших 3 и меньших 14 Всем привет! Как из одного созданного массива выбрать числа и записать их в новый массив? вот задание "сформировать новый массив, состоящий только из нечетных элементов больших 3 и меньших 14." Помогите, а то уже замучилась!:wall: http://www.cyberforum.ru/cpp-beginners/thread857484.html
Из одного созданного массива выбрать числа и записать их в новый массив C++
Всем привет! Как из одного созданного массива выбрать числа и записать их в новый массив? вот задание "сформировать новый массив, состоящий только из нечетных элементов больших 3 и меньших 14." Помогите, а то уже замучилась!:wall:
Для матрицы из 3 строк и 6 столбцов отпечатать номера C++
Помогите пожалуйста решить задачу. Для матрицы из 3 строк и 6 столбцов отпечатать номера тех столбцов, в которых первый элемент меньше второго, а второй - меньше третьего, и число таких столбцов. Заранее благодарен.
C++ Получить матрицу размера n на m заполненную случайными числами от 10 до100 http://www.cyberforum.ru/cpp-beginners/thread857473.html
Получить одномерный массив, состоящий из произведений элементов столбцов
C++ Заполнить одномерный массив n случайными числами от -15 до 3. Вычислить и вывести на экран Заполнить одномерный массив n случайными числами от -15 до 3. Вычислить и вывести на экран подробнее

Показать сообщение отдельно
sl_k
12 / 12 / 0
Регистрация: 15.04.2010
Сообщений: 61
06.05.2013, 20:12  [ТС]     Массив-ссылка на некоторые элементы другого массива
Цитата Сообщение от ForEveR Посмотреть сообщение
Добавлено через 15 минут
Вцелом reference_wrapper здесь и не нужен особо. Можно заюзать просто boost::optional<T&>.

то есть в моем случае
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
typedef Matrix<int> MatrixInt;
std::vector<MatrixInt> mainVector(numMatrixes);
 
typedef optional<int&> intRef;
typedef Matrix<intRef> matrRef;
 
std::vector<matrRef> subVector(numMatrixes);
 
int indexArray[numIndexes];
 
for (int iMatrix = 0; iMatrix < numMatrixes; iMatrix++)
{  
    subVector[iMatrix].resize(numIndexes, numCols );
    for (int iIndex = 0; iIndex < numIndexes; iIndex ++)
        for (int iCol = 0; iCol < numCols; iCol++)
            // Описание трех скобок подряд:
            // доступ к нужной матрице: iMatrix
            // доступ к элементу матрицы: iIndex, iCol
            // и как аргумент для конструктора cоответствующий элемент из iMatrix: mainVector[iMatrix](indexArray[iIndex], iCol)
            subVector[iMatrix](iIndex, iCol)(mainVector[iMatrix](indexArray[iIndex], iCol));
}
И потом, чтобы получить значения из матрицы subVector'a нужно будет использовать оператор "*", но прямого доступа к объекту у нас не будет:
int x = 1 ;
int& rx = x ;
optional<int&> ora ;
optional<int&> orb(x) ;
ora = orb ; // now 'ora' is bound to 'x' through 'rx'
*ora = 2 ; // Changes value of 'x' through 'ora'
assert(x==2);

И для этого, кажется, надо будет переписывать save/load_construct_data для класса Matrix<T>, чего, собственно я и пытался избежать (если помните, у меня не совсем мир с этими функциями), думая, что можно как то сериализовать subVector как объект, а не как указатель (указатель ли это вообще?). Но это уже тема для boost serialization.
 
Текущее время: 00:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru