Companies Home Search Profile

C++ Standard Library: Sequential Containers

Focused View

Giovanni Dicanio

2:25:04

20 View
  • 01 - Course Overview.mp4
    02:05
  • 02 - Introduction.mp4
    03:10
  • 03 - Introducing std - -vector.mp4
    05:29
  • 04 - Demo - std - -vector in Action.mp4
    04:18
  • 05 - Demo - std - -vector of Your Own Classes.mp4
    03:01
  • 06 - Basic Operations with std - -vector.mp4
    04:13
  • 07 - Safely Accessing std - -vector Elements.mp4
    03:54
  • 08 - Demo - Buffer Overflow and Safe Element Access in std - -vector.mp4
    05:32
  • 09 - Analyzing std - -vector Growth Policy - Size vs. Capacity.mp4
    06:48
  • 10 - Perf Tip - Reserving Capacity to Improve push back Times.mp4
    02:03
  • 11 - Summary.mp4
    02:00
  • 12 - Introduction.mp4
    01:25
  • 13 - Sorting std - -vector with std - -sort.mp4
    03:12
  • 14 - What Are Iterators and Why Should You Care.mp4
    07:14
  • 15 - Demo - std - -sort in Action.mp4
    01:39
  • 16 - Sorting Using Custom Order.mp4
    03:04
  • 17 - Summary.mp4
    01:14
  • 18 - Introduction.mp4
    02:00
  • 19 - Inserting Elements with std - -vector - -insert.mp4
    03:49
  • 20 - Additional Overloads of std - -vector - -insert.mp4
    01:39
  • 21 - Demo - std - -vector - -insert in Action.mp4
    03:03
  • 22 - Removing Elements with the Erase-remove Idiom.mp4
    07:34
  • 23 - Demo - The Erase-remove Idiom in Action.mp4
    02:10
  • 24 - Demo - Fixing a Subtle Bug Involving the Erase-remove Idiom.mp4
    03:30
  • 25 - Searching for Elements with std - -find and std - -find if.mp4
    03:57
  • 26 - Demo - Searching in Action.mp4
    03:02
  • 27 - Demo - Case-insensitive String Search with std - -find if.mp4
    03:30
  • 28 - Summary.mp4
    01:45
  • 29 - Introduction.mp4
    01:37
  • 30 - std - -array - A Zero-overhead C++ Wrapper Around Built-in Arrays.mp4
    05:33
  • 31 - Common Operations with std - -array.mp4
    06:32
  • 32 - Reusing Standard Librarys Algorithms with std - -array.mp4
    03:22
  • 33 - Demo - std - -array in Action.mp4
    02:38
  • 34 - Implementing Very Efficient Fast Look-up Tables with std - -array.mp4
    02:04
  • 35 - Summary.mp4
    02:22
  • 36 - Introduction.mp4
    01:22
  • 37 - Introducing std - -list - Pros and Cons.mp4
    05:26
  • 38 - Creating std - -list, Inserting and Removing Elements.mp4
    05:12
  • 39 - Accessing Elements in std - -list.mp4
    01:37
  • 40 - Bidirectional vs. Forward-only Iteration, and std - -forward list.mp4
    01:31
  • 41 - Demo - std - -list in Action.mp4
    02:53
  • 42 - Demo - Subtle Bug When Sorting std - -list.mp4
    00:59
  • 43 - Analyzing and Fixing the std - -list Sorting Bug.mp4
    02:19
  • 44 - Demo - Sorting std - -list in Action.mp4
    00:52
  • 45 - Summary and Thank You.mp4
    02:25
  • Description


    This course will teach you in a practical way, with slides and demo code, how to use some important containers available in the C++ Standard Library (e.g. std::vector). You’ll learn their pros and cons, common operations, and how to fix subtle bugs.

    What You'll Learn?


      Non-trivial computer programs need to store data and process it. Developing data structures and containers from scratch in C++ is a daunting and bug-prone task. In fact, you would have to consider advanced aspects like manual memory and resource management, proper handling subtle corner cases, writing both generic code and code that is optimized for special cases, and so on. Thankfully, the C++ Standard Library already offers containers that are high-quality, efficient and well-tested. It’s a joy to develop C++ code reusing them: In fact, using these containers in your C++ code, will boost your productivity, as the C++ Standard Library gives you on a platter high-quality implementations of common and useful data structures, that you can easily leverage in your C++ code. C++ Standard Library’s maintainers spend hours looking at these data structures, and improving, refining, and optimizing their C++ implementation code. In this course, you’ll learn how to simply reuse that treasure in your own C++ applications.

      In particular, you’ll learn about std::vector, which is a flexible dynamic array, that should be the default container of choice in many contexts in C++ applications. You’ll enjoy the automatic resource management (for both memory resources and non-memory ones) offered by std::vector, which will help you develop both efficient and safer C++ code. You’ll also see how convenient is for example to grow a vector, still keeping the contiguous memory layout requirement for its elements.

      You’ll also learn about important operations, like inserting, removing and searching elements, using both C++ container methods and Standard Library’s algorithms. In fact, C++ standard containers and algorithms are kind of like “bread and butter”, and you can do great things using both. You don’t need to have any previous experience with the C++ Standard Library, as I’ll teach you its great and flexible design based on containers, algorithms and iterators, and you’ll see how containers are wired with algorithms using iterators, and how you can reuse the same algorithms with different containers.

      You’ll also learn that in some specific cases you can use a zero-overhead standard container that wraps fixed-size C-style arrays in a convenient high-level safe C++ interface: it’s std::array. I’ll compare and contrast it against std::vector, and you’ll learn pros and cons of each one.

      You’ll also learn how to use the std::list container, if you need a high-level C++ abstraction based on the doubly-linked list data structure. Moreover, seeing the same algorithms used with different containers will also work very well as a reinforcement learning experience for you. I’ll also show you some subtle bugs, that are especially frequent in those starting learning the C++ Standard Library’s containers, and how to fix them. I hope this will save you time and headache during your C++ programming.

      To proficiently follow this course, you only need a basic knowledge of C++ language features.

      After completing this course, you will be able to use high-quality efficient and well-tested C++ Standard Library containers like std::vector, std::array and std::list in your own C++ code. You’ll have practical knowledge about them, and you’ll be able to make proper judgement about picking one or the other based on the problem at hand. You’ll also have knowledge about important common operations with these standard containers, like inserting, removing and searching items.

    More details


    User Reviews
    Rating
    0
    0
    0
    0
    0
    average 0
    Total votes0
    Focused display
    Category

    C++

    Giovanni Dicanio
    Giovanni Dicanio
    Instructor's Courses
    Giovanni Dicanio is a computer programmer specialized in both cross-platform C and C++, and Windows operating system development. Giovanni wrote computer programming articles on C++, OpenGL and other programming subjects on Italian computer magazines. He recently authored some C++ feature articles for MSDN Magazine, too. He contributed code to some open-source projects as well. His computer programming experience dates back to the glorious Commodore 64 and Amiga 500 golden days, with Basic and assembly. Giovanni likes helping people solving C and C++ programming problems on forums including Stack Overflow. He has held the Microsoft MVP Award for Visual C++ since 2007 for his contributions to the C++ development community, first on NNTP newsgroups then on forums.
    Pluralsight, LLC is an American privately held online education company that offers a variety of video training courses for software developers, IT administrators, and creative professionals through its website. Founded in 2004 by Aaron Skonnard, Keith Brown, Fritz Onion, and Bill Williams, the company has its headquarters in Farmington, Utah. As of July 2018, it uses more than 1,400 subject-matter experts as authors, and offers more than 7,000 courses in its catalog. Since first moving its courses online in 2007, the company has expanded, developing a full enterprise platform, and adding skills assessment modules.
    • language english
    • Training sessions 45
    • duration 2:25:04
    • level average
    • Release Date 2023/10/15