Мазмунга өтүү

Стандарттык шаблондор китепканасы (STL)

Программалоо C++ Татаалдыгы 1/5

Сабактын башталышы

Стандарттык шаблондор китепканасы (STL)

Даяр контейнерлер жана алгоритмдер — велосипедди кайра ойлоп таппоо үчүн

Негизги идея: STL — бул C++ менен кошо келген чоң аспаптар топтому. Өз тизмеңди, сөздүгүңдү же сорттоону нөлдөн жазуунун ордуна, std::vector жана std::map сыяктуу даяр контейнерлерди жана std::sort сыяктуу алгоритмдерди колдоносуң — текшерилген, тез жана даяр.
Сабактын аягында сен:
  • өсүп жаткан маанилердин тизмесин std::vectorта сактай аласың,
  • std::map менен ачкыч боюнча издей аласың,
  • sort, find жана count сыяктуу даяр алгоритмдерди колдоносуң,
  • каалаган контейнерди ыңгайлуу range-based for менен айланасың.

1. STL деген эмне?

Стандарттык шаблондор китепканасы — C++ке орнотулган даяр аспаптардын жыйнагы. Аны бекер аласың — жөн гана керектүү аталышты #include кыласың. Анда үч негизги аспап түрү бар:

  • Контейнерлер — маалыматыңды сактаган объекттер (мисалы, vector жана map).
  • Алгоритмдер — маалымат үстүндөгү даяр операциялар (мисалы, sort, find, count).
  • Итераторлор — алгоритмдерди контейнерлер менен байланыштырган «көрсөткүчтөр» (сен .begin() жана .end() көрөсүң).
STLди техникага толгон ашкана деп элестет. Баарын кол менен туурай алмаксың, бирок жанында блендер турса, эмнеге?

2. std::vector — өсүп жаткан тизме

C++теги жөнөкөй массивдин өлчөмү туруктуу. std::vector — программа иштеп жатканда өсүп жана кичирейип тура турган акылдуу массив. Элементтерди push_back менен кошосуң, санын size() менен билесиң, каалаган элементти чарчы кашаа [i] менен окуйсуң (номерлөө 0дөн башталат).

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> scores;      // an empty, resizable list of ints
    scores.push_back(90);    // add items to the end
    scores.push_back(75);
    scores.push_back(88);

    cout << "We have " << scores.size() << " scores\n";
    cout << "First score: " << scores[0] << "\n";
    return 0;
}

Натыйжа:

We have 3 scores
First score: 90

Байкачы: биз вектордун өлчөмүн эч жерде айткан жокбуз — элемент кошкон сайын ал өзү өстү.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө