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 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
+
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 рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
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
Program using STL Algorithms
Program using Stack
Program using Queue
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
- What is Standard Template Library (STL)?
- What are the main components of STL?
- Define Container.
- What is an Iterator?
- Explain Function Objects (Functors).
- Differentiate between Sequence and Associative Containers.
- What is the use of vector?
- Explain stack and queue in STL.
- What is sort() Algorithm?
- What are the advantages of STL?
Exam Oriented Important Questions
- Define Standard Template Library (STL).
- Explain the Components of STL.
- Describe Different Types of Containers with examples.
- Explain Iterators in STL.
- Discuss Common STL Algorithms.
- Write a Program using vector and sort().
- Explain stack and queue with suitable examples.
- Discuss Advantages and Limitations of STL.
- Differentiate between Containers and Algorithms.
- 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 тЖТ