Эквивалент ArrayList в C++: исследование динамических массивов

В этой статье мы рассмотрим эквивалент структуры данных ArrayList в C++. ArrayList — это реализация динамических массивов, встречающаяся в таких языках, как Java, которая предоставляет массивы изменяемого размера с различными методами для эффективного манипулирования элементами. Мы обсудим несколько методов и приведем примеры кода, демонстрирующие их использование в C++. Давайте погрузимся!

  1. Объявление и инициализация:
    • Создание объекта ArrayList в C++
    • Инициализация ArrayList с начальной емкостью
#include <iostream>
#include <vector>
int main() {
    std::vector<int> arrayList; // Declaration
    std::vector<int> arrayListWithCapacity(10); // Initialization with initial capacity
    return 0;
}
  1. Добавление элементов:
    • Добавление элементов в конец ArrayList
    • Вставка элементов по определенному индексу в ArrayList
#include <iostream>
#include <vector>
int main() {
    std::vector<int> arrayList;
    // Appending elements
    arrayList.push_back(5);
    arrayList.push_back(10);
    // Inserting elements
    arrayList.insert(arrayList.begin() + 1, 7); // Inserting 7 at index 1
    return 0;
}
  1. Доступ к элементам:
    • Доступ к элементам по индексу
    • Изменение элементов по определенному индексу
#include <iostream>
#include <vector>
int main() {
    std::vector<int> arrayList = {5, 7, 10};
    // Accessing elements
    int elementAtIndex0 = arrayList[0]; // Accessing element at index 0
    int elementAtIndex2 = arrayList.at(2); // Accessing element at index 2
    // Modifying elements
    arrayList[1] = 8; // Modifying element at index 1
    return 0;
}
  1. Удаление элементов:
    • Удаление элементов по индексу
    • Удаление элементов по значению
#include <iostream>
#include <vector>
int main() {
    std::vector<int> arrayList = {5, 7, 8};
    // Removing elements
    arrayList.erase(arrayList.begin() + 1); // Removing element at index 1
    // Removing elements by value
    arrayList.erase(std::remove(arrayList.begin(), arrayList.end(), 7), arrayList.end()); // Removing all occurrences of 7
    return 0;
}
  1. Размер и емкость:
    • Получение размера ArrayList
    • Получение текущей емкости ArrayList
#include <iostream>
#include <vector>
int main() {
    std::vector<int> arrayList = {5, 7, 8};
    // Size of the ArrayList
    int size = arrayList.size();
    // Capacity of the ArrayList
    int capacity = arrayList.capacity();
    return 0;
}

В этой статье мы рассмотрели эквивалент структуры данных ArrayList в C++. Мы обсудили различные методы, включая объявление, инициализацию, добавление элементов, доступ к элементам, удаление элементов и получение размера и емкости. Используя контейнер std::vector в C++, мы можем добиться функциональности, аналогичной ArrayList в Java. Понимание этих методов позволит вам эффективно работать с динамическими массивами в C++. Приятного кодирования!