Skip to main content

C++ Day 39

  C++ Day 39 STL Containers (Deep Understanding & Real Usage) Till now, you already know arrays, vectors, loops, and STL algorithms. Today, we go one step deeper and understand STL containers , which are the backbone of modern C++ programming. In real projects and competitive coding, choice of container matters a lot. 1. What are STL Containers? STL containers are data structures provided by C++ to store data efficiently. They handle: memory management resizing element access performance optimization You focus on logic , not memory handling. 2. Categories of STL Containers STL containers are mainly divided into: Sequence Containers Associative Containers Unordered Containers Container Adapters 3. Sequence Containers These store data in sequence . 3.1 Vector Most used container in C++. vector< int > v; Key Features: Dynamic size Contiguous memory Fast random access Slower insertion in middle Example: v. push_...

C++ Day 27

 Day 27: Introduction to Templates in C++

Templates allow you to write generic and reusable code. this is right once practical with disparate information types exploitation the like logical system (like sort swapping etc) ๐Ÿ”น topics to cover: Role templates class templates template specialty (basic intro) templates with aggregate parameters ๐Ÿ“˜ examples: 1. Role Template Example cpp Copy Edit #include using namespace std; template T myMax(T a T b) { return (a > b) ? a : b; } int main() { cout << myMax(3 7) << endl; cout << myMax(3.5 2.5) << endl; cout << myMax('g' 'e') << endl; return 0; } 2. family guide example cpp copy edit #include using namespace std; template class Calculater { tonne num1 num2; public: calculator(t n1 tonne n2) { num1 = n1; num2 = n2; } null displayresult() { cout << "sum: " << num1 + num2 << endl; cout << "product: " << num1 * num2 << endl; } }; int main() { calculator intcalc(2 3); intcalcdisplayresult(); calculator floatcalc(25 35); floatcalcdisplayresult(); } ๐Ÿงช do tasks: write amp run guide to trade ii variables Make amp family guide for amp obtuse stack specialize amp run guide for woman case (eg comparison alphabetically) ✅ goals for today: understand however templates service cut cipher duplication get easy composition and exploitation run & family templates learn around however templates are instantiated during digest

Comments

Popular posts from this blog

C++ Day 35

  C++ Day 34: Layout Layouts (Part 2) We’ll cover: Constructer Layout Adjuster Layout Decorator Layout practise Task ๐Ÿ”น 1. developer form (creational) used to make compound objects measure away step ✅ employ case: you need to form associate in nursing aim (like amp pizza pie calculator house) with elective parameters example: cpp copy edit class calculator {     train Methodor gpu ram; public:     family developer {         train Methodor gpu ram;     public:         developer setcpu(string c) { Methodor = c; take *this; }         developer setgpu(string g) { gpu = g; take *this; }         developer setram(string r) { run = r; take *this; }         calculator Construct() {             take Calculater(cpu gpu ram);         }     };     Calculater(string snow train m train r) : cpu(c) gp...

C++ Day 33

  C++ Day 33: Smart Pointers & Memory Management ๐Ÿ”น 1. wherefore forward pointers in c++ hand-operated green / cancel is error-prone: memory leaks ๐Ÿง  double deletes ❌ dangling pointers ๐Ÿ’ฅ smart pointers care store mechanically exploitation raii (Supply skill is initialization) ๐Ÿ”น ii. Types of Smart Pointers in C++ ✅ std::unique_ptr Sole ownership of a Supply. Cannot be copied. Automatically deletes the Supply when it goes out of scope. cpp Copy Edit #include  unique_ptr ptr1 = make_unique(10); cout << *ptr1 << endl; // 10 You can transfer ownership: cpp Copy Edit unique_ptr ptr2 = move(ptr1); ✅ std::shared_ptr Shared ownership multiple shared_ptrs can point to the same object. Uses reference counting to track how many owners. cpp Copy Edit shared_ptr p1 = make_shared(100); shared_ptr p2 = p1;  // Reference count = 2 When count goes to 0 memory is released. ✅ std::weak_ptr Non-owning reference to a shared_ptr-managed object. Used to break cyclic references ...

CSES Increasing Subsequence solution

 You are given an array containing  n n n integers. Your task is to determine the longest increasing subsequence in the array, i.e., the longest subsequence where every element is larger than the previous one. A subsequence is a sequence that can be derived from the array by deleting some elements without changing the order of the remaining elements. Input The first line contains an integer n n n : the size of the array. After this there are n n n integers x 1 , x 2 , … , x n x_1,x_2,\ldots,x_n x 1 ​ , x 2 ​ , … , x n ​ : the contents of the array. Output Print the length of the longest increasing subsequence. Constraints 1 ≤ n ≤ 2 ⋅ 1 0 5 1 \le n \le 2 \cdot 10^5 1 ≤ n ≤ 2 ⋅ 1 0 5 1 ≤ x i ≤ 1 0 9 1 \le x_i \le 10^9 1 ≤ x i ​ ≤ 1 0 9 Example Input: 8 7 3 5 3 6 2 9 8 Output: 4 #include < bits / stdc ++. h > using namespace std ; void solve (){ int n ; cin >> n ; vector <int> arr ( n ); for ( int i = 0 ; i < n ; i ++)...