Re: std::iota
От: Qbit86 Кипр
Дата: 18.02.15 14:29
Оценка: 6 (2) +1
Здравствуйте, emergen, Вы писали:

E>Подскажите, пожалуйста, какой функцией в С++ можно получить список значений если известно левая граница N и правая граница M:


http://en.cppreference.com/w/cpp/algorithm/iota
Глаза у меня добрые, но рубашка — смирительная!
Список типа int от N до M
От: emergen  
Дата: 18.02.15 14:17
Оценка: :))
Подскажите, пожалуйста, какой функцией в С++ можно получить список значений если известно левая граница N и правая граница M:


— например N = 1, M = 4 на выходе получим массив:
1, 2, 3, 4

— например N = 3, M = 6 на выходе получим массив:
3, 4, 5, 6

Есть ли стандартные функции на с++ для таких целей?
Re: Список типа int от N до M
От: McQwerty Россия  
Дата: 19.02.15 13:24
Оценка: :))
Здравствуйте, emergen, Вы писали:

E>Подскажите, пожалуйста, какой функцией в С++ можно получить список значений если известно левая граница N и правая граница M:

E>- например N = 1, M = 4 на выходе получим массив:
E>1, 2, 3, 4

E>- например N = 3, M = 6 на выходе получим массив:

E>3, 4, 5, 6

E>Есть ли стандартные функции на с++ для таких целей?


#define SPISOK void
#define znachN 3

SPISOK* get_spisok (int N,
                  int M)
{
    int I, J;
    SPISOK* spisok;

        J = 0;
        I = N; nachalo:
    if (I > M) goto L;
        if (N == I) spisok = malloc ((M - N) * sizeof (M)
    + sizeof (N) + sizeof (I));
            * (int*) (((char*) spisok) + J) = ++ I;
    if (I <= M) { J += sizeof (J);
                    goto nachalo; }

L:
    * (int*) (((char*) spisok) + J) = -1;
    return spisok;
}

#define znachM 6

template <class tip> int simwol (tip M) {
    return M > 0 ? 1 : 2; }

int main (int, char**)
{
    int*spisok=(int*) get_spisok (znachN,  znachM), spysok = 0; 
    if ((znachM - znachN) < 1) goto L;

    cykl: if (spisok [spysok]> 0)
    goto pechat;
        if (spysok [spisok] == -1) goto L;
pechat:
        printf ("%s%d", "%," + simwol <int> (spysok),spisok [spysok]);
            spysok += 1; if (spysok != 0) goto cykl;
                L: std::cout << std::endl;

    free (spisok); return 0;
} // main


Должно работать.
Re: Список типа int от N до M
От: Evgeny.Panasyuk Россия  
Дата: 18.02.15 14:31
Оценка: 2 (1)
Здравствуйте, emergen, Вы писали:

E>Подскажите, пожалуйста, какой функцией в С++ можно получить список значений если известно левая граница N и правая граница M:


boost::irange
Re[2]: Список типа int от N до M
От: pugv Россия  
Дата: 19.02.15 14:00
Оценка: +1
Здравствуйте, McQwerty, Вы писали:

MQ>Должно работать.


Ужас какой...
Re: Список типа int от N до M
От: drewet Нигерия  
Дата: 18.02.15 16:17
Оценка:
Здравствуйте, emergen, Вы писали:

E>Подскажите, пожалуйста, какой функцией в С++ можно получить список значений если известно левая граница N и правая граница M:



E>- например N = 1, M = 4 на выходе получим массив:

E>1, 2, 3, 4

E>- например N = 3, M = 6 на выходе получим массив:

E>3, 4, 5, 6

E>Есть ли стандартные функции на с++ для таких целей?

оператор цикла for подойдет
Re[3]: Список типа int от N до M
От: McQwerty Россия  
Дата: 19.02.15 14:19
Оценка:
Здравствуйте, pugv, Вы писали:

MQ>>Должно работать.

P>Ужас какой...

Ну, попытался пошутить. Вижу, что неудачно
Re[4]: Список типа int от N до M
От: pugv Россия  
Дата: 19.02.15 14:23
Оценка:
Здравствуйте, McQwerty, Вы писали:

MQ>Ну, попытался пошутить. Вижу, что неудачно


Да не, нормально. Я бы так не завернул.
Правда не решает поставленную задачу.
Re[4]: Закон По
От: Qbit86 Кипр
Дата: 19.02.15 14:26
Оценка:
Здравствуйте, McQwerty, Вы писали:

MQ>Ну, попытался пошутить. Вижу, что неудачно :-(


Закон По: «без чёткого указания о намерениях автора очень трудно или невозможно отличить экстремизм от пародии на него.»
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: Закон По
От: McQwerty Россия  
Дата: 20.02.15 09:28
Оценка:
Здравствуйте, Qbit86, Вы писали:

MQ>>Ну, попытался пошутить. Вижу, что неудачно


Q>Закон По: «без чёткого указания о намерениях автора очень трудно или невозможно отличить экстремизм от пародии на него.»


Ну, в полном соответствии с этим законом, я и подумал, что исходный пост — попытка потроллить сообщество. Поэтому и попытался в ответ пошутить. Теперь просёк, что не прав.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.