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

Написать программу для объединения массивов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Частый путь новичка http://www.cyberforum.ru/cpp-beginners/thread1065348.html
Здравствуйте, народ! Подскажите, пожалуйста, какие-нибудь уроки по C++ для начинающих (то есть с нуля), или книгу толковую, по тому же поводу. И еще, если не влом, научите плз читать с файла и выводить в файл. Буду чертовски благодарен!
C++ Блок-схема помогите зделать блок схему к с++ #include <iostream> #include <cstdlib> using namespace std; int main() { int P,A; cout << "Array: "; for (int i = 0; i < 16; i++) http://www.cyberforum.ru/cpp-beginners/thread1065346.html
Наследование и шаблоны C++
Доброе время суток. Есть три класс: interface.h template <class T> class interface { public: interface(); virtual ~interface() = 0;
C++ Доступ к машине в локальной сети
Возможно ли осуществить доступ к расшаренным папкам компьютера в локальной сети программно, если при попытке сделать это руками через Компьютер->Сеть->Имя компьютера в сети, запрашивает логи и пароль. Такая проблема возникает (на данный момент) с Windows 7, у которого, как понял, по умолчанию стоит запрет на доступ к общим папкам. Пока что единственный выход - снимать ограничение в Цетре...
C++ Массивы. Найти номера тех элементов, модуль которых равен заданному числу А http://www.cyberforum.ru/cpp-beginners/thread1065316.html
Дан одномерный массив Р, который состоит из 16 элементов. Найти номера тех элементов, модуль которых равен заданному числу А. число А ввести с клавиатуры. решите пожалуста срочно надо
C++ посмотрите, не могу разобраться) #include <iostream> using namespace std; unsigned long int myFunc(unsigned long int x,unsigned long int y); int main() { unsigned long int x,y; int d; cout<<"vvedite chislo x: "; подробнее

Показать сообщение отдельно
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
08.01.2014, 20:58     Написать программу для объединения массивов
MrGluck, Я хотел использовать N еще для определения первого измерения массива arrays, что-бы компилятор не пропускал заранее различные размерности. Пожалуй подниму отдельный топик с этим вопросом.

Добавлено через 1 час 34 минуты
MrGluck, sonik_20014, вот что у меня получилось в результате:
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
28
29
30
31
#include <iostream>
#include <algorithm>
#include <iterator>
 
template<typename T, std::size_t N>
T* join(T *(&arrays)[N], const int (&sizes)[N])
{
    int capasity = std::accumulate(sizes, sizes + N, 0);
    T *res = new T[capasity];
 
    for (int i = 0, pos = 0; i < N;)
    {
        std::copy(arrays[i], arrays[i] + sizes[i], res + pos);
        pos += sizes[i++];
    }
 
    return res;
}
 
int main()
{
    int* arrays[] =
    {
        new int[2]{1,2},
        new int[1]{3},
        new int[3]{4,5,6}
    },
    sizes[] = {2,1,3},
    *res = join(arrays, sizes);
    std::copy(res, res + 6, std::ostream_iterator<int>(std::cout, " "));
}
В данном случае компилятор не пропустит код в котором размерности массивов не совпадают.
 
Текущее время: 21:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru