Форум программистов, компьютерный форум 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. Вычислить и вывести на экран подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
06.05.2013, 19:19     Массив-ссылка на некоторые элементы другого массива
boost::reference_wrapper? http://www.boost.org/doc/libs/1_53_0/doc/html/ref.html
C++
1
std::vector<boost::reference_wrapper<Matrix>> matrixes;
Правда создавать так как вы хотите конечно не получится... Можно создать пустой и потом push_backать как надо, сделав предварительно reserve.

Добавлено через 6 минут
Но в теории можно развлечься помощнее и заюзать
C++
1
boost::optional<boost::reference_wrapper<T>>
Добавлено через 7 минут
Простенький пример идеи:

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
#include <vector>
#include <iostream>
#include <boost/optional.hpp>
#include <boost/ref.hpp>
 
int main()
{
    int array[] = {1,2,3,4,5,6,7,8,9};
    int indices[] = {0, 5, 8};
    typedef boost::optional<boost::reference_wrapper<int>> value_t;
    std::vector<value_t> w_vector(10);
    for (int i = 0; i < sizeof(indices) / sizeof(*indices); ++i)
    {
        w_vector[indices[i]] = boost::ref(array[indices[i]]);
    }
    for (const auto& v : w_vector)
    {
        if (v.is_initialized())
        {
            std::cout << *v << std::endl;
        }
        else
        {
            std::cout << "uninit" << std::endl;
        }
    }
}
Добавлено через 15 минут
Вцелом reference_wrapper здесь и не нужен особо. Можно заюзать просто boost::optional<T&>.
 
Текущее время: 02:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru