Standard Template Library (STL) in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Standard Template Library (STL) in C++ Notes | Basic Computer Engineering | RGPV BTech First Year


Standard Template Library (STL) in C++

Standard Template Library (STL) C++ рдХреА рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА Libraries рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ (Predefined) Generic Classes рддрдерд╛ Functions рдХрд╛ Collection рд╣реИ рдЬрд┐рд╕рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ Programmer рдХрдо Code рд▓рд┐рдЦрдХрд░ рдЕрдзрд┐рдХ Efficient Programs рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

STL рдореБрдЦреНрдп рд░реВрдк рд╕реЗ Templates рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ Containers, Algorithms, Iterators рддрдерд╛ Function Objects (Functors) рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ Data рдХреЛ Store рдХрд░рдиреЗ, Process рдХрд░рдиреЗ рддрдерд╛ Search рдПрд╡рдВ Sort рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

STL = Containers

+

Algorithms

+

Iterators

+

Function Objects

Introduction to Standard Template Library (STL)

рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ Program рдореЗрдВ Data Structure рддрдерд╛ Algorithms рдХреЛ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ Development Time рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди C++ рдХреА Standard Template Library (STL) рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред

STL Programmer рдХреЛ Ready-to-Use Data Structures рддрдерд╛ Algorithms рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ Program рдЕрдзрд┐рдХ Fast, Reliable рддрдерд╛ Maintainable рдмрди рдЬрд╛рддреЗ рд╣реИрдВред


Definition of STL

Standard Template Library (STL) C++ рдХреА рдПрдХ Standard Library рд╣реИ рдЬреЛ Templates рдкрд░ рдЖрдзрд╛рд░рд┐рдд Generic Containers, Algorithms, Iterators рддрдерд╛ Function Objects рдХрд╛ Collection рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп Programming рдХреЛ рд╕рд░рд▓, рддреЗрдЬ рддрдерд╛ рдЕрдзрд┐рдХ Efficient рдмрдирд╛рдирд╛ рд╣реИред


Need of STL

  • Code Reusability рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Development Time рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Efficient Data Structures рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Standard Algorithms рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Programming Errors рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Maintainable Code рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Generic Programming рдХреЛ Support рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Performance рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

Features of STL

  • Template Based Library.
  • Provides Generic Programming.
  • Ready-to-Use Data Structures.
  • Large Collection of Algorithms.
  • Supports Dynamic Memory Management.
  • High Performance.
  • Reusable Components.
  • Portable and Standardized.

Advantages of STL

Advantage Description
Code Reusability Predefined Components рдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Less Development Time Data Structures рдПрд╡рдВ Algorithms рд╕реНрд╡рдпрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред
High Efficiency Optimized Algorithms рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВред
Reliability Standardized рдПрд╡рдВ Tested Components рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВред
Easy Maintenance Code рдХреЛ Maintain рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реЛрддрд╛ рд╣реИред

Main Components of STL

STL рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЪрд╛рд░ Components рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдиреА рд╣реИред

Component Purpose
Containers Data рдХреЛ Store рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
Algorithms Searching, Sorting рдПрд╡рдВ Processing рдХреЗ рд▓рд┐рдПред
Iterators Containers рдореЗрдВ Traverse рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
Function Objects (Functors) Objects рдХреЛ Functions рдХреА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

Types of Containers

STL рдореЗрдВ Containers рдХреЛ рдореБрдЦреНрдпрддрдГ рддреАрди Categories рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Container Type Description
Sequence Containers Elements рдХреЛ Linear Order рдореЗрдВ Store рдХрд░рддреЗ рд╣реИрдВред
Associative Containers Key рдЖрдзрд╛рд░рд┐рдд Data Storage рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
Container Adaptors Existing Containers рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢реЗрд╖ Functionality рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

Sequence Containers

Sequence Containers рдРрд╕реЗ Containers рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ Elements рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░рдо (Linear Sequence) рдореЗрдВ Store рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм Data рдХреЛ рдХреНрд░рдорд╡рд╛рд░ Access рдХрд░рдирд╛ рд╣реЛред

Container Description
vector Dynamic Array рдЬреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ Size рдмрдврд╝рд╛ рдпрд╛ рдШрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред
list Doubly Linked List рдЖрдзрд╛рд░рд┐рдд Containerред
deque Double Ended Queue рдЬрд┐рд╕рдореЗрдВ рджреЛрдиреЛрдВ рдУрд░ рд╕реЗ Insert рддрдерд╛ Delete рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Associative Containers

Associative Containers Data рдХреЛ рдХрд┐рд╕реА Key рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд (Organized) рд░рдЦрддреЗ рд╣реИрдВред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ Fast Searching рддрдерд╛ Sorting рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Container Purpose
set Unique Values рдХреЛ Sorted Order рдореЗрдВ Store рдХрд░рддрд╛ рд╣реИред
map Key-Value Pair рдХреЛ Sorted Order рдореЗрдВ Store рдХрд░рддрд╛ рд╣реИред
multiset Duplicate Values рдХреЛ Allow рдХрд░рддрд╛ рд╣реИред
multimap Duplicate Keys рдХреЗ рд╕рд╛рде Key-Value Pair Store рдХрд░рддрд╛ рд╣реИред

Container Adaptors

Container Adaptors рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз Containers рдХреЗ рдКрдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ Containers рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдорд┐рдд Operations рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

Adaptor Description
stack LIFO (Last In First Out) Principle рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
queue FIFO (First In First Out) Principle рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
priority_queue Priority рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Elements Store рдХрд░рддрд╛ рд╣реИред

Iterators

Iterators рдРрд╕реЗ Objects рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдХрд┐рд╕реА Container рдХреЗ рд╕рднреА Elements рдХреЛ рдХреНрд░рдорд╡рд╛рд░ Access рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдиреНрд╣реЗрдВ Container рдФрд░ Algorithms рдХреЗ рдмреАрдЪ Bridge рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

vector<int> v; vector<int>::iterator it; for(it=v.begin(); it!=v.end(); it++) { cout<<*it; }

Common STL Algorithms

STL рдореЗрдВ рдЕрдиреЗрдХ Ready-to-Use Algorithms рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдЬрд┐рдирдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ Searching, Sorting рддрдерд╛ Data Processing рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред

Algorithm Purpose
sort() Elements рдХреЛ Ascending рдпрд╛ Descending Order рдореЗрдВ Sort рдХрд░рддрд╛ рд╣реИред
find() рдХрд┐рд╕реА Element рдХреЛ Search рдХрд░рддрд╛ рд╣реИред
reverse() Container рдХреЗ Elements рдХреЛ Reverse рдХрд░рддрд╛ рд╣реИред
count() рдХрд┐рд╕реА Value рдХреА рдХреБрд▓ Occurrences Count рдХрд░рддрд╛ рд╣реИред
binary_search() Sorted Data рдореЗрдВ Fast Searching рдХрд░рддрд╛ рд╣реИред

Example using STL Vector

#include<vector> using namespace std; vector<int> numbers; numbers.push_back(10); numbers.push_back(20); numbers.push_back(30);

Program using STL Algorithms

#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector<int> v={40,10,30,20}; sort(v.begin(),v.end()); for(int x:v) cout<<x<<" "; return 0; }

Program using Stack

#include<iostream> #include<stack> using namespace std; int main() { stack<int> s; s.push(10); s.push(20); s.push(30); cout<<s.top(); s.pop(); return 0; }

Program using Queue

#include<iostream> #include<queue> using namespace std; int main() { queue<int> q; q.push(100); q.push(200); cout<<q.front(); q.pop(); return 0; }

Applications of STL

  • Competitive Programming
  • Game Development
  • Operating Systems
  • Database Management Systems
  • Artificial Intelligence Applications
  • Machine Learning Projects
  • Network Programming
  • Compiler Design
  • Embedded Systems
  • Enterprise Software Development

Advantages of STL

  • Ready-to-Use Data Structures рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддреА рд╣реИред
  • Programming Time рдХрдо рдХрд░рддреА рд╣реИред
  • Optimized Algorithms рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
  • Code Reusability рдмрдврд╝рд╛рддреА рд╣реИред
  • Generic Programming рдХреЛ Support рдХрд░рддреА рд╣реИред
  • Reliable рдПрд╡рдВ Standardized Library рд╣реИред
  • Performance рдмреЗрд╣рддрд░ рд╣реЛрддреА рд╣реИред
  • Maintainable рдПрд╡рдВ Portable Code рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░рддреА рд╣реИред

Limitations of STL

  • Beginners рдХреЗ рд▓рд┐рдП рд╕реАрдЦрдирд╛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • Templates рдХреЗ рдХрд╛рд░рдг Compile Time рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред
  • Error Messages рдХрдИ рдмрд╛рд░ рдмрд╣реБрдд рдмрдбрд╝реЗ рдПрд╡рдВ рдЬрдЯрд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред
  • рдХреБрдЫ Applications рдореЗрдВ Memory Overhead рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред
  • Internal Implementation рдХреЛ рд╕рдордЭрдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

Difference between Containers and Algorithms

Containers Algorithms
Data Store рдХрд░рддреЗ рд╣реИрдВред Stored Data рдкрд░ Operations рдХрд░рддреЗ рд╣реИрдВред
Memory Allocate рдХрд░рддреЗ рд╣реИрдВред Searching, Sorting, Counting рдЖрджрд┐ рдХрд░рддреЗ рд╣реИрдВред
Examples: vector, list, map. Examples: sort(), find(), reverse(), count().

Viva Questions

  1. What is Standard Template Library (STL)?
  2. What are the main components of STL?
  3. Define Container.
  4. What is an Iterator?
  5. Explain Function Objects (Functors).
  6. Differentiate between Sequence and Associative Containers.
  7. What is the use of vector?
  8. Explain stack and queue in STL.
  9. What is sort() Algorithm?
  10. What are the advantages of STL?

Exam Oriented Important Questions

  1. Define Standard Template Library (STL).
  2. Explain the Components of STL.
  3. Describe Different Types of Containers with examples.
  4. Explain Iterators in STL.
  5. Discuss Common STL Algorithms.
  6. Write a Program using vector and sort().
  7. Explain stack and queue with suitable examples.
  8. Discuss Advantages and Limitations of STL.
  9. Differentiate between Containers and Algorithms.
  10. Explain Applications of STL in Software Development.

Conclusion

Standard Template Library (STL) рдЖрдзреБрдирд┐рдХ C++ Programming рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рд╣реИред рдпрд╣ Programmer рдХреЛ Predefined Containers, Algorithms, Iterators рддрдерд╛ Function Objects рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рд╕реЗ Development Time рдХрдо рд╣реЛрддрд╛ рд╣реИ, Code Reusability рдмрдврд╝рддреА рд╣реИ рддрдерд╛ Performance рдмреЗрд╣рддрд░ рд╣реЛрддреА рд╣реИред Competitive Programming рд╕реЗ рд▓реЗрдХрд░ Enterprise Software Development рддрдХ STL рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП RGPV B.Tech рд╡рд┐рджреНрдпрд╛рд░реНрдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП STL рдХрд╛ рдЕрдзреНрдпрдпрди рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

Related Articles

Arrays in C++ Notes | One Dimensional & Two Dimensional Arrays with Programs | Basic Computer Engineering | RGPV BTech First Year

Arrays ...

Read More тЖТ

Control Statements in C++ Notes | Decision Making & Looping Statements | Basic Computer Engineering | RGPV BTech First Year

Control...

Read More тЖТ

Expressions in C++ Notes | Types of Expressions, Evaluation & Expression Statements | Basic Computer Engineering | RGPV BTech First Year

Express...

Read More тЖТ

Operators in C++ Notes | Arithmetic, Relational, Logical, Assignment, Bitwise Operators | Basic Computer Engineering | RGPV BTech First Year

Operato...

Read More тЖТ

Program Structure in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Program...

Read More тЖТ