C++_BE1
406 subscribers
278 photos
1 video
42 files
523 links
Канал по C/C++, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
std::string класс в C++

Класс string хранит символы как последовательность байтов с возможностью доступа к каждому символу. Рассмотрим три простые функции:

1. getline() - функция используется для помещения потока символов, введенных пользователем, в память объекта.

2. push_back() - функция используется для добавления символа в конец строки.

3. pop_back() - введенная в C++11 (для строк), эта функция используется для удаления последнего символа из строки.

#example
#example

Функции вместимости в строках

1. capacity() - функция возвращает ёмкость памяти, выделенную для строки, которая может быть равной или больше, чем размер самой строки. Дополнительное пространство выделяется таким образом, чтобы при добавлении новых символов в строку операции могли выполняться эффективно.
2. resize() - функция изменяет размер строки, его можно увеличивать или уменьшать.
3. length() - функция возвращает длину строки.
4. shrink_to_fit() - функция уменьшает ёмкость памяти строки, делает ее равной минимально возможной. Эта операция полезна для экономии дополнительной памяти, когда мы уверены, что больше не нужно добавлять символы.
Data Structures and Algorithms in C++.pdf
12.9 MB
#books

Data Structures and Algorithms in C++ (2011)
Авторы: Michael T. Goodrich, Roberto Tamassia, David M. Mount

Второе издание данной книги предназначено для ознакомления со структурами данных и алгоритмами, включая их проектирование, анализ и реализацию. Авторы предоставляют введение в объектно-ориентированное проектирование на C++ и работу с шаблонами проектирования, включая использование наследования классов и общего программирования через шаблоны классов и функций.
#example

Итераторы в строках

1. begin() - возвращает итератор в начало строки.
2. end() - возвращает итератор в конец строки.
3. rbegin() - возвращает обратный итератор, указывающий на конец строки.
4. rend() - возвращает обратный итератор, указывающий на начало строки.
C++17_In_Detail_Learn_the_Exciting_Features_of_The_New_C++_Standard.pdf
1 MB
#books

C++17 In Detail (2017)
Автор: Bartłomiej Filipek

C++17 является серьезным обновлением языка и содержит много интересных дополнений и улучшений, которые изменяют язык в лучшую сторону. Данная книга подробно описывает все существенные изменения, добавленные в этом стандарте.
#example

Токенизация строки

Токенизация строки означает разделение строки относительно некоторого разделителя (разделителей). Есть много способов этого добиться.

Рассмотрим пример с функцией strtok(). Она разбивает строку по указанным разделителям и должна быть вызвана в цикле, на каждой итерации возвращая следующую часть. В конце возвращает NULL.
Advanced_C++_Programming_Cookbook_Become_an_expert_C++_programmer.epub
39.2 MB
#books

Advanced C++ Programming Cookbook (2020)
Автор: Dr. Rian Quinn

Если вы думаете, что освоили C++ и знаете все, что нужно для написания надежных программ, данная книга может пригодиться вам для укрепления знаний. Из нее вы получите исчерпывающую информацию о C++, включающую эксклюзивные советы и интересные приемы для улучшения процесса разработки вашего приложения. В книге рассматриваются такие темы, как move семантика, потокобезопасность, динамическая память и другие.
#example

set::erase()

Функция erase() используется для удаления элементов из контейнера по указанной позиции или диапазону.
Understanding and Using C Pointers.pdf
7.3 MB
#books

Understanding and Using C Pointers (2013)
Автор: Richard M. Reese

Улучшите свои результаты благодаря полному пониманию указателей в C и управлению памятью. Из этой практической книги вы узнаете, как указатели предоставляют механизм динамического управления памятью, улучшают поддержку структур данных и обеспечивают доступ к аппаратному обеспечению. Автор Ричард Риз показывает читателям, как использовать указатели с массивами, строками, структурами и функциями, используя модели памяти на протяжении всей книги.
#example

Функция strrchr()

В C++ strrchr() - это предопределенная функция, используемая для обработки строк. Эта функция возвращает указатель на всю строку после последнего появления заданного символа. Символ, последнее вхождение которого мы хотим найти, передается в качестве второго аргумента функции, а строка, в которой мы должны найти этот символ, передается в качестве первого аргумента функции.

В примере кода на картинке мы используем функцию для того, чтобы найти порядковый номер символа в заданной строке.
Absolute C++.pdf
6.3 MB
#books

Absolute C++ (2015)
Авторы: Walter Savitch, Kenrick Mock
Количество страниц: 1008

Absolute C++ — это всеобъемлющее введение в язык программирования C++. Данная книга, адаптированная для широкого круга читателей, подходит как для начинающих, так и для опытных программистов, знакомых с языком C++. Шестое издание охватывает множество тем: от базового синтаксиса до более сложных вещей, таких как полиморфизм, обработка исключений и стандартная библиотека шаблонов.
#example

Ссылки в C++

Когда переменная объявляется как ссылка, она становится альтернативным именем для существующей переменной. Переменную можно объявить как ссылку, поместив в её объявление "&".
#example

Некоторые различия между ссылками и указателями

1. Указатель может быть объявлен void, а ссылка - никогда. Пример на картинке.

2. Переменная-указатель может иметь несколько уровней вложенности, то есть, например, бывают одиночные указатели, двойные указатели, тройные указатели. Ссылка же имеет только один единственный уровень вложенности.

3. Ссылочная переменная не может быть обновлена.
#example

Могут ли ссылки отсылать к недопустимому местоположению в памяти в C++?

В C++ ссылки более безопасны, чем указатели, потому что ссылки должны быть инициализированы, и их нельзя изменить, чтобы ссылаться на что-то другое после инициализации. Но есть исключения, когда у нас могут быть недействительные ссылки.

Но есть пара исключений, когда у нас могут быть недействительные ссылки. Они приведены на картинке.
#article

CopperSpice представляет собой набор библиотек C++, используемых для разработки кроссплатформенных приложений.

https://cpp.libhunt.com/copperspice-alternatives
#example

Введение в обработку исключений

Одним из преимуществ C++ перед C является обработка исключений. Исключения - это ненормальные условия, с которыми программа сталкивается во время своего выполнения.

Есть два типа исключений: а) синхронные, б) асинхронные (например, которые находятся вне контроля программы, сбой диска и т. д.). Для этой цели C++ предоставляет следующие специализированные ключевые слова.

try: представляет блок кода, который может вызвать исключение.
catch: представляет блок кода, который выполнится при возникновении определенного исключения.
throw: используется для создания исключения. Также используется для перечисления исключений, которые генерирует функция, но не обрабатывает себя.