home.social

#ranges — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #ranges, aggregated by home.social.

  1. Гайд по Git для начинающих: основные команды, работа с ветками и типичные ошибки

    Собрали гайд по работе с Git для новичков. Разберём, как Git хранит изменения, какие команды нужны для базовой работы с репозиторием и ветками и какие ошибки чаще всего допускают новички. Все команды показываем на примерах в терминале, чтобы их можно было сразу попробовать. Сохраняйте и пользуйтесь.

    habr.com/ru/companies/netology

    #git #github #gitlab #ranges #новичку #история_проекта #работа_с_git #создание_коммитов #работа_с_ветками #удалённый_репозиторий

  2. Гайд по Git для начинающих: основные команды, работа с ветками и типичные ошибки

    Собрали гайд по работе с Git для новичков. Разберём, как Git хранит изменения, какие команды нужны для базовой работы с репозиторием и ветками и какие ошибки чаще всего допускают новички. Все команды показываем на примерах в терминале, чтобы их можно было сразу попробовать. Сохраняйте и пользуйтесь.

    habr.com/ru/companies/netology

    #git #github #gitlab #ranges #новичку #история_проекта #работа_с_git #создание_коммитов #работа_с_ветками #удалённый_репозиторий

  3. Гайд по Git для начинающих: основные команды, работа с ветками и типичные ошибки

    Собрали гайд по работе с Git для новичков. Разберём, как Git хранит изменения, какие команды нужны для базовой работы с репозиторием и ветками и какие ошибки чаще всего допускают новички. Все команды показываем на примерах в терминале, чтобы их можно было сразу попробовать. Сохраняйте и пользуйтесь.

    habr.com/ru/companies/netology

    #git #github #gitlab #ranges #новичку #история_проекта #работа_с_git #создание_коммитов #работа_с_ветками #удалённый_репозиторий

  4. Гайд по Git для начинающих: основные команды, работа с ветками и типичные ошибки

    Собрали гайд по работе с Git для новичков. Разберём, как Git хранит изменения, какие команды нужны для базовой работы с репозиторием и ветками и какие ошибки чаще всего допускают новички. Все команды показываем на примерах в терминале, чтобы их можно было сразу попробовать. Сохраняйте и пользуйтесь.

    habr.com/ru/companies/netology

    #git #github #gitlab #ranges #новичку #история_проекта #работа_с_git #создание_коммитов #работа_с_ветками #удалённый_репозиторий

  5. Работаем с контейнерами в C++ с помощью библиотеки Ranges

    Понятие контейнер сейчас активно применяется в контексте Docker и аналогичных решений по контейнеризации. Однако, в языке C++ контейнеры существуют уже очень давно и являются фундаментальной частью Standard Template Library (STL). Они предоставляют готовые реализации наиболее часто используемых структур данных, избавляя разработчика от необходимости писать их с нуля. Контейнеры C++ можно разделить на несколько основных категорий. Последовательные контейнеры (Sequence Containers) хранят элементы в линейной последовательности, при этом порядок элементов определяется позицией добавления. Ассоциативные контейнеры (Associative Containers) автоматически сортируют элементы по ключу. При этом, они обеспечивают достаточно быстрый поиск (O(log n)). Неупорядоченные ассоциативные контейнеры (Unordered Associative Containers) хранят элементы в хеш-таблицах. Обеспечивают поиск в среднем за O(1). Адаптеры контейнеров (Container Adapters) предоставляют ограниченный интерфейс поверх других контейнеров. В рамках данной статьи мы будем говорить об использовании библиотеки Ranges для работы с контейнерами.

    habr.com/ru/companies/otus/art

    #c++ #ranges #библиотека_Ranges #контейнеры_STL #STL

  6. Работаем с контейнерами в C++ с помощью библиотеки Ranges

    Понятие контейнер сейчас активно применяется в контексте Docker и аналогичных решений по контейнеризации. Однако, в языке C++ контейнеры существуют уже очень давно и являются фундаментальной частью Standard Template Library (STL). Они предоставляют готовые реализации наиболее часто используемых структур данных, избавляя разработчика от необходимости писать их с нуля. Контейнеры C++ можно разделить на несколько основных категорий. Последовательные контейнеры (Sequence Containers) хранят элементы в линейной последовательности, при этом порядок элементов определяется позицией добавления. Ассоциативные контейнеры (Associative Containers) автоматически сортируют элементы по ключу. При этом, они обеспечивают достаточно быстрый поиск (O(log n)). Неупорядоченные ассоциативные контейнеры (Unordered Associative Containers) хранят элементы в хеш-таблицах. Обеспечивают поиск в среднем за O(1). Адаптеры контейнеров (Container Adapters) предоставляют ограниченный интерфейс поверх других контейнеров. В рамках данной статьи мы будем говорить об использовании библиотеки Ranges для работы с контейнерами.

    habr.com/ru/companies/otus/art

    #c++ #ranges #библиотека_Ranges #контейнеры_STL #STL

  7. Работаем с контейнерами в C++ с помощью библиотеки Ranges

    Понятие контейнер сейчас активно применяется в контексте Docker и аналогичных решений по контейнеризации. Однако, в языке C++ контейнеры существуют уже очень давно и являются фундаментальной частью Standard Template Library (STL). Они предоставляют готовые реализации наиболее часто используемых структур данных, избавляя разработчика от необходимости писать их с нуля. Контейнеры C++ можно разделить на несколько основных категорий. Последовательные контейнеры (Sequence Containers) хранят элементы в линейной последовательности, при этом порядок элементов определяется позицией добавления. Ассоциативные контейнеры (Associative Containers) автоматически сортируют элементы по ключу. При этом, они обеспечивают достаточно быстрый поиск (O(log n)). Неупорядоченные ассоциативные контейнеры (Unordered Associative Containers) хранят элементы в хеш-таблицах. Обеспечивают поиск в среднем за O(1). Адаптеры контейнеров (Container Adapters) предоставляют ограниченный интерфейс поверх других контейнеров. В рамках данной статьи мы будем говорить об использовании библиотеки Ranges для работы с контейнерами.

    habr.com/ru/companies/otus/art

    #c++ #ranges #библиотека_Ranges #контейнеры_STL #STL

  8. Работаем с контейнерами в C++ с помощью библиотеки Ranges

    Понятие контейнер сейчас активно применяется в контексте Docker и аналогичных решений по контейнеризации. Однако, в языке C++ контейнеры существуют уже очень давно и являются фундаментальной частью Standard Template Library (STL). Они предоставляют готовые реализации наиболее часто используемых структур данных, избавляя разработчика от необходимости писать их с нуля. Контейнеры C++ можно разделить на несколько основных категорий. Последовательные контейнеры (Sequence Containers) хранят элементы в линейной последовательности, при этом порядок элементов определяется позицией добавления. Ассоциативные контейнеры (Associative Containers) автоматически сортируют элементы по ключу. При этом, они обеспечивают достаточно быстрый поиск (O(log n)). Неупорядоченные ассоциативные контейнеры (Unordered Associative Containers) хранят элементы в хеш-таблицах. Обеспечивают поиск в среднем за O(1). Адаптеры контейнеров (Container Adapters) предоставляют ограниченный интерфейс поверх других контейнеров. В рамках данной статьи мы будем говорить об использовании библиотеки Ranges для работы с контейнерами.

    habr.com/ru/companies/otus/art

    #c++ #ranges #библиотека_Ranges #контейнеры_STL #STL

  9. CW: Advent of Code solutions in Perl

    AoC day 5. Part 1 was straightforward; the naive solution that checks every ID against every range is plenty fast. For part 2 I went with a three-step approach: Read provided ranges, merge adjacent/overlapping ranges, sum up the remaining (non-overlapping) ranges.

    use v5.36;
    use List::Util qw(sum0 min);

    my @ranges;
    while (readline) {
    chomp;
    last if $_ eq '';

    my ($lo, $hi) = m{^ (\d+) - (\d+) \z}xa
    or die "bad input: '$_'";

    push @ranges, [$lo, $hi + 1];
    }

    @ranges = sort { $a->[1] <=> $b->[1] } @ranges;

    for my $i (reverse 1 .. $#ranges) {
    if ($ranges[$i - 1][1] >= $ranges[$i][0]) {
    $ranges[$i - 1][1] = $ranges[$i][1];
    $ranges[$i - 1][0] = min $ranges[$i - 1][0], $ranges[$i][0];
    splice @ranges, $i, 1;
    }
    }

    say sum0 map $_->[1] - $_->[0], @ranges;

    #AdventOfCode #perl

  10. CW: Advent of Code solutions in Perl

    AoC day 5. Part 1 was straightforward; the naive solution that checks every ID against every range is plenty fast. For part 2 I went with a three-step approach: Read provided ranges, merge adjacent/overlapping ranges, sum up the remaining (non-overlapping) ranges.

    use v5.36;
    use List::Util qw(sum0 min);

    my @ranges;
    while (readline) {
    chomp;
    last if $_ eq '';

    my ($lo, $hi) = m{^ (\d+) - (\d+) \z}xa
    or die "bad input: '$_'";

    push @ranges, [$lo, $hi + 1];
    }

    @ranges = sort { $a->[1] <=> $b->[1] } @ranges;

    for my $i (reverse 1 .. $#ranges) {
    if ($ranges[$i - 1][1] >= $ranges[$i][0]) {
    $ranges[$i - 1][1] = $ranges[$i][1];
    $ranges[$i - 1][0] = min $ranges[$i - 1][0], $ranges[$i][0];
    splice @ranges, $i, 1;
    }
    }

    say sum0 map $_->[1] - $_->[0], @ranges;

    #AdventOfCode #perl

  11. CW: Advent of Code solutions in Perl

    AoC day 5. Part 1 was straightforward; the naive solution that checks every ID against every range is plenty fast. For part 2 I went with a three-step approach: Read provided ranges, merge adjacent/overlapping ranges, sum up the remaining (non-overlapping) ranges.

    use v5.36;
    use List::Util qw(sum0 min);

    my @ranges;
    while (readline) {
    chomp;
    last if $_ eq '';

    my ($lo, $hi) = m{^ (\d+) - (\d+) \z}xa
    or die "bad input: '$_'";

    push @ranges, [$lo, $hi + 1];
    }

    @ranges = sort { $a->[1] <=> $b->[1] } @ranges;

    for my $i (reverse 1 .. $#ranges) {
    if ($ranges[$i - 1][1] >= $ranges[$i][0]) {
    $ranges[$i - 1][1] = $ranges[$i][1];
    $ranges[$i - 1][0] = min $ranges[$i - 1][0], $ranges[$i][0];
    splice @ranges, $i, 1;
    }
    }

    say sum0 map $_->[1] - $_->[0], @ranges;

    #AdventOfCode #perl

  12. CW: Advent of Code solutions in Perl

    AoC day 5. Part 1 was straightforward; the naive solution that checks every ID against every range is plenty fast. For part 2 I went with a three-step approach: Read provided ranges, merge adjacent/overlapping ranges, sum up the remaining (non-overlapping) ranges.

    use v5.36;
    use List::Util qw(sum0 min);

    my @ranges;
    while (readline) {
    chomp;
    last if $_ eq '';

    my ($lo, $hi) = m{^ (\d+) - (\d+) \z}xa
    or die "bad input: '$_'";

    push @ranges, [$lo, $hi + 1];
    }

    @ranges = sort { $a->[1] <=> $b->[1] } @ranges;

    for my $i (reverse 1 .. $#ranges) {
    if ($ranges[$i - 1][1] >= $ranges[$i][0]) {
    $ranges[$i - 1][1] = $ranges[$i][1];
    $ranges[$i - 1][0] = min $ranges[$i - 1][0], $ranges[$i][0];
    splice @ranges, $i, 1;
    }
    }

    say sum0 map $_->[1] - $_->[0], @ranges;

    #AdventOfCode #perl

  13. CW: Advent of Code solutions in Perl

    AoC day 5. Part 1 was straightforward; the naive solution that checks every ID against every range is plenty fast. For part 2 I went with a three-step approach: Read provided ranges, merge adjacent/overlapping ranges, sum up the remaining (non-overlapping) ranges.

    use v5.36;
    use List::Util qw(sum0 min);

    my @ranges;
    while (readline) {
    chomp;
    last if $_ eq '';

    my ($lo, $hi) = m{^ (\d+) - (\d+) \z}xa
    or die "bad input: '$_'";

    push @ranges, [$lo, $hi + 1];
    }

    @ranges = sort { $a->[1] <=> $b->[1] } @ranges;

    for my $i (reverse 1 .. $#ranges) {
    if ($ranges[$i - 1][1] >= $ranges[$i][0]) {
    $ranges[$i - 1][1] = $ranges[$i][1];
    $ranges[$i - 1][0] = min $ranges[$i - 1][0], $ranges[$i][0];
    splice @ranges, $i, 1;
    }
    }

    say sum0 map $_->[1] - $_->[0], @ranges;

    #AdventOfCode #perl