Почему список не работает так же, как массив в С++

Почему мой код не печатает значение 2 в l[0]?

#include <bits/stdc++.h>
using namespace std;
list<int> l;
int main()
{
    l.push_back(2);
    cout<<l[0];
    return 0;
}

Это даже компилируется, если в списке нет этого оператора (вы хотели использовать std::vector?)

Borgleader 23.04.2022 05:03

Потому что std::list — это связанный список. Вы должны перебрать все предыдущие элементы, чтобы добраться до предпочтительного индекса. См.:thispointer.com/c-how-to-get-element-by-index-in-list. Если вы хотите что-то вроде списков Python, используйте std::vector. Также и #include <bits/stdc++.h>, и using namespace std; считаются плохой практикой.

Lala5th 23.04.2022 05:06

Разное не то же самое. -- Фред Пикер

Pete Becker 23.04.2022 14:23
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
3
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В C++ контейнеры List реализованы как двусвязные списки. Они превосходны в производительности при вставке и перемещении элементов, но их необходимо обходить. У них нет прямого доступа к элементам по их положению.

То, что вы, вероятно, предпочли бы, это vector. Векторы обеспечивают прямой доступ:

vector<int> l;
int main()
{
    l.push_back(2);
    cout << l[0];
    return 0;
}

Другие вопросы по теме