Video není dostupné.
Omlouváme se.

Dynamic Arrays in C++ (std::vector)

Sdílet
Vložit
  • čas přidán 7. 08. 2024
  • Patreon ► / thecherno
    Twitter ► / thecherno
    Instagram ► / thecherno
    Discord ► thecherno.com/discord
    Series Playlist ► thecherno.com/cpp
    Why is it called "vector"? ► stackoverflow.com/questions/5...
    EASTL ► github.com/electronicarts/EASTL
    Thank you to the following Patreon supporters:
    - Samuel Egger
    - Dominic Pace
    Gear I use:
    -----------------
    BEST laptop for programming! ► geni.us/pakTES
    My FAVOURITE keyboard for programming! ► geni.us/zNhB
    FAVOURITE monitors for programming! ► geni.us/Ig6KBq
    MAIN Camera ► geni.us/t6xyDRO
    MAIN Lens ► geni.us/xGoDWT
    Second Camera ► geni.us/CYUQ
    Microphone ► geni.us/wqO6g7K

Komentáře • 270

  • @fayzankowshik3625
    @fayzankowshik3625 Před 3 lety +95

    I love how you treat C++ like an actual language you'd speak in

    • @XoRo-sk9cq
      @XoRo-sk9cq Před 9 hodinami

      He explains it in such a clear way!

  • @BombeNissen
    @BombeNissen Před 6 lety +23

    Great set of videos!
    I study computer engineering, and work with C++ for nearly all assignments. When there's issues with the code, I've been using these videos to get a deeper understanding on how a certain topic works, and it's been a huge help. Keep it up!

  • @abdulcool1268
    @abdulcool1268 Před 6 lety +7

    your videos are truly amazing. I wasn't able to catch up at first but now i really enjoy it and i am getting to understand more and more about c++ everyday

  • @bratanvonehre3559
    @bratanvonehre3559 Před 4 lety +19

    Brilliant channel man! Right now I have to implement an algorithm in an efficient way in C++ for my studies, your videos are an incredible help!

  • @nighma
    @nighma Před 6 lety +152

    It will be so cool to compare one of the STL container (as an example) with one rewritten in the EA library and see the differences ;)

    • @arhantbararia380
      @arhantbararia380 Před 4 lety +112

      it will be 35$ extra for that DLC

    • @Blonder_Studio
      @Blonder_Studio Před 2 lety +3

      better not to, BF2042 is one reason for that, game so broken that Engine so broken as well and plus extra charge for DLC, so good that Cherno left EA

    • @lightknight876
      @lightknight876 Před 2 lety +2

      @@Blonder_Studio he's too good, passionate and professional for them.

  • @JoeyMcCart
    @JoeyMcCart Před 5 lety +18

    Man i'm so glad I found your channel, you're saving me rn

  •  Před rokem +2

    Fantastic channel! So great to get things explained by someone who actually knows what goes on behind the scenes, and who does not make absolutely everything into an programming analogy with food and animals.
    10/10

  • @davidcarwile9205
    @davidcarwile9205 Před 2 lety +7

    Seriously, you are better than my instructors at explaining everything. You are better at explaining than the damn books. These trimmed down and non bloated explanations are so much better than what I have been going through.

  • @matthewortiz7859
    @matthewortiz7859 Před 5 lety +22

    I learned more watching this than a week taking my CSII course! Keep it up

  • @tanguyletessier
    @tanguyletessier Před 2 lety

    Thank you! One of the best YT channels to explain simply difficult (at first glance) problems and especially put them into practice

  • @keidon6841
    @keidon6841 Před 2 lety +1

    So much usefull information,u do not just give general understanding of a topic but provide the logic of its work
    i am glad i found your channel

  • @ytacctaccnt
    @ytacctaccnt Před 6 lety +208

    Go boy, go! You're my inspiration for learning C++. Your videos and your charisma and attitude!

    • @sizlax
      @sizlax Před 6 lety +12

      I double this. He's not like most of the other people that teach this stuff on youtube. Listening to most people is like listening to text to speech or Ben stein and watching pain dry at the same time. This guy will make my life if he avoids using the word GOOEY and says G U I like a normal human being.

    • @sizlax
      @sizlax Před 5 lety

      @@MrSerozka Sure, they make up something that sounds retarded and takes more to spell than the original spelling for... reasons! Fuckin millennials..

    • @mrbrian826
      @mrbrian826 Před 2 lety

      I wonder after 4 years if you ever did learn c++.

    • @ytacctaccnt
      @ytacctaccnt Před 2 lety +2

      @@mrbrian826 Yes, but I still don't use it as my primary language, practically for anything... I'm into C# at the moment

    • @mrbrian826
      @mrbrian826 Před 2 lety

      @@ytacctaccnt nice

  • @maryameskandari7510
    @maryameskandari7510 Před 5 lety +8

    I learned a lot , thanks
    pls keep it up and make some video about graph representation and boost library

  • @rcookie5128
    @rcookie5128 Před 6 lety +6

    Great stuff! The name confused me too when I first learned about std::vector..

  • @shadyganem5448
    @shadyganem5448 Před 4 lety +1

    Great video.
    I learn so much from this guy. real talent.
    I would like to learn more about the best practices of memory allocation.

  • @yl2415
    @yl2415 Před 2 lety +1

    Up to this point it's not that I don't know all these, it's just I want to see how you program, because you have way better programming style than I did. Thanks Cherno!

  • @MichaelYoussry
    @MichaelYoussry Před 6 lety

    Thanks for putting so much effort into these videos.

  • @archimedeis
    @archimedeis Před 2 lety

    Wow that was pretty well done. I think I got enough to try out my own sort of mini project.

  • @flippygat3
    @flippygat3 Před 3 lety +14

    Amazing channel, just found it. :) Also the first tutorial channel I have ever found that I do not listen to at 1.5X speed.

    • @ldmdesign5610
      @ldmdesign5610 Před 2 lety

      i need to slow it down sometimes i think lol

  • @clodgozon3968
    @clodgozon3968 Před 4 lety +11

    11:34
    Roughly speaking, abstract thinking develops over the years as a programmer which is a good trait so one doesn't have to stay longer into details like this.

  • @ashleycalhoun1824
    @ashleycalhoun1824 Před 6 lety +14

    Probably my favorite programming channel, Not only are his videos exciting, his style is so much cleaner. Best channel on youtube!

    • @jannesopanen8032
      @jannesopanen8032 Před 3 lety +1

      Yea he tends to dig a bit deeper than others :)

    • @ashleycalhoun1824
      @ashleycalhoun1824 Před 3 lety +1

      @@jannesopanen8032 here you are replying to a comment from a couple years ago, and I've already forgotten all I knew about programming.

  • @sanjayreddy3295
    @sanjayreddy3295 Před 3 lety +20

    It's called a vector because Alex Stepanov, the designer of the Standard Template Library, was looking for a name to distinguish it from built-in arrays. He admits now that he made a mistake, because mathematics already uses the term 'vector' for a fixed-length sequence of numbers. C++11 compounds this mistake by introducing a class 'array' that behaves similarly to a mathematical vector.
    Alex's lesson: be very careful every time you name something.

    • @christianlabanca5377
      @christianlabanca5377 Před rokem +3

      So now we have a class named Vector that behaves kinda like an array and a class named array that behaves kinda like a vector...
      Indeed, be careful when naming something

  • @SkySentry7
    @SkySentry7 Před 2 lety +1

    Thank you SO SO SO MUCH BROOO! You don't know how you've just helped me... I understood every single thing you just said.😱👍👍👍

  • @work9167
    @work9167 Před 2 lety

    This is amazing, man. I like your videos so much

  • @Xgamesvidoes
    @Xgamesvidoes Před 4 lety +2

    Yepp...
    I was also confused with going from Unity C# vectors...
    To the C++ version of vectors! XD
    Nice video!

  • @stevefox7418
    @stevefox7418 Před 4 lety

    Very nicely explained and very informative!

  • @cowboybebop521
    @cowboybebop521 Před 3 lety

    very nice little class learned so much cheers!

  • @younismalik8809
    @younismalik8809 Před rokem

    Thanks The Cherno! Great explanation as always! 👍

  • @manuellabor2759
    @manuellabor2759 Před 5 lety

    Subscribed! Looking forward to going over your videos on C++👍👍👍👍👍

  • @agentandy159
    @agentandy159 Před 3 lety +1

    11:30 Thanks for addressing this finally... Coming from C# I saw the method signatures in C++ and thought "are humans supposed to be able to read this"

  • @blackfun4448
    @blackfun4448 Před 3 lety

    you are amazing at teaching, keep it up!

  • @genelee2050
    @genelee2050 Před 5 lety +7

    it happened again. Near the end of the video, I thought someone else was playing music somewhere until i realized the source coming from this video...

  • @erwinschrodinger2320
    @erwinschrodinger2320 Před 3 lety +1

    Great video as always!

  • @vaddimurthyram3364
    @vaddimurthyram3364 Před 3 lety

    Thanks a lot......clearly explained basics about vector(Dynamic Array or Array List)👏👏👏

  • @dmitrijjafisov1912
    @dmitrijjafisov1912 Před 6 lety +1

    Quality content! Thumbs up!

  • @hassantariq4731
    @hassantariq4731 Před 4 lety

    Thank You For Saving My Semester :)

  • @saikirangattu2924
    @saikirangattu2924 Před 6 lety

    Very nice , Please make more videos on other data structures

  • @TheTrashpack234
    @TheTrashpack234 Před 6 lety +342

    Is it bad that instead of watching the video I'm just watching his hands?

    • @1Naif
      @1Naif Před 6 lety +10

      No

    • @greatbullet7372
      @greatbullet7372 Před 6 lety +16

      explains pretty much everything

    • @mprecup
      @mprecup Před 6 lety +46

      If I'm watching his hands, it's because he's getting close to backhanding the cactus.

    • @MsJavaWolf
      @MsJavaWolf Před 6 lety +34

      That is the purpose of the video. The hand gestures are an advanced form of hypnosis that will make you understand vectors better.

    • @FilSapia
      @FilSapia Před 4 lety +4

      I think The Cherno is secretly Italian ;)

  • @ahmedanwar976
    @ahmedanwar976 Před 5 lety +3

    at 9:48 if anyone doesn't understand how he initialized the struct you can search for "aggregate initialization".

  • @damianzarzycki28
    @damianzarzycki28 Před 6 lety

    great content !

  • @MultiVishnu55
    @MultiVishnu55 Před 4 lety +2

    bro, you're too smart! goddamn, good shit

  • @zaid4708
    @zaid4708 Před 4 lety +4

    "Simple spice series" very accurate caption

  • @kemptcode
    @kemptcode Před 6 lety +19

    You should mention emplace_back in another video.

  • @claudiofigueiredo8168
    @claudiofigueiredo8168 Před 4 lety

    hey, what do you use to program in c++? Visual Studio? Awsome work ^^

  • @manishgurawalia7625
    @manishgurawalia7625 Před 3 lety +2

    11:40 C++ is love♥️

  • @hangyanma2501
    @hangyanma2501 Před 2 lety

    你好,陈诺,你的课讲的太好了

  • @bies_moron4404
    @bies_moron4404 Před 6 lety

    Good video !!!
    How we should use inline ?
    if function are short we should use inline otherwise we shouldn't ?

  •  Před 6 lety +8

    please make parallel process and simd tutorial

  • @abhayagarwal7103
    @abhayagarwal7103 Před 6 lety +1

    Man, your concepts are so clear.

  • @Solo6R
    @Solo6R Před 6 lety +1

    You're a god with a compiler. Been programming in C++ for longer than I care to admit, and when I stumble across something I'm not 100% confident with I think "I wonder if Cherno can help me out here" and sure enough you can, and have, several times! Keep up the good work bud, VERY much appreciated.

  • @huthayfa1723
    @huthayfa1723 Před 6 lety

    Nice video ; I'm really confused of these vectors in computer science if we needed a dynamic array we would use a linked list .
    what is the difference between these two ?

  • @limmeh7881
    @limmeh7881 Před 4 lety

    To think I was modestly learning about pointers and jumped into this rabbit hole.

  • @theamjolnir9641
    @theamjolnir9641 Před 5 lety

    how do you access vectors of vectors? like in an matrix cause you can't exactly do matrix.assign() to a specific value can you?

  • @otabektillavayev3309
    @otabektillavayev3309 Před rokem

    Good job

  • @tahaalkhashmany5678
    @tahaalkhashmany5678 Před 4 lety +1

    does it basically work like dynamic memory allocation with malloc/realloc in c?

  • @sewingsugar9892
    @sewingsugar9892 Před 4 lety +1

    Can you recommend a book or course that gets more in depth information about behind the scenes of c++?

  • @smachkim9996
    @smachkim9996 Před 6 lety

    how can we make the function for import series data (around 5000points)?

  • @giancarloandrebravoabanto7091

    hi could you tell us how to watch a bool vector in debug time?. because l did it for int and strings without problems

  • @Xx_McJasper_xX
    @Xx_McJasper_xX Před 3 lety

    Nice video bud.

  • @thelonewolf9866
    @thelonewolf9866 Před 4 lety

    Excellent!

  • @abhisheksa6635
    @abhisheksa6635 Před 11 měsíci

    Will be glad to see someone trying to rewrite a STL written thing which can be more optimal and more towards the personal use case.

  • @stewartzayat7526
    @stewartzayat7526 Před 6 lety

    I have a question not related to the topic, why are classes in the standard library defined with lowercase identifiers, even though everyone declares classes with camel casing?

  • @CombatFXZone
    @CombatFXZone Před 5 lety +9

    I absolutely love the comparison with Java, because I started out with Java in High School.

    • @Blonder_Studio
      @Blonder_Studio Před 2 lety

      learning programmin in high school sucks balls
      i learned c# in high school and my "teacher" is a piece of shit bad

  • @tablatronix
    @tablatronix Před 6 lety

    How do you init a vector with values, not push after ?

  • @sharrayyy
    @sharrayyy Před 3 lety +1

    Coding and guitar
    That's an awesome combo!

  • @kgravikumar
    @kgravikumar Před 6 lety

    Can i use the vectors for struct with different data types

  • @krood_
    @krood_ Před 5 lety +1

    Whats the difference between dynamic array and vector ? are they both the same thing ?

  • @paul87173
    @paul87173 Před 4 lety +1

    hey cherno, why dont you use "using namespace std" when you code?

  • @user-vc2pm5xv7s
    @user-vc2pm5xv7s Před 4 lety

    I remember in Bjarne Stroustrup's book, he never talks about raw array, he just went a head and talks about std::vector.

  • @michaeldasilva5976
    @michaeldasilva5976 Před 4 lety

    Hm... While following along after making the Vertex class and attempting to print it to the console using
    std::cout

  • @chiefolk
    @chiefolk Před 3 lety

    If i have a pointer to a vector which then moves to a different memory address to due to resize does my pointer automatically point to the new memory address?

  • @orbyfied
    @orbyfied Před 3 lety +1

    so i didnt know how the vector class worked, so i created an "ArrayList" class,
    and i did the exact same thing that the vector class does xD to add an element just create a new array with current size + 1 and copy all of the previous contents into array[0 to size-1] and put the new element into array[size]

    • @orbyfied
      @orbyfied Před 3 lety

      @Peterolen i know but it is sort of a simplified version of the vector and ArrayList. It has the same concept behind it

  • @nhensonbass
    @nhensonbass Před 2 lety +1

    I know this is about five years later, but another reason I've learned not to store pointers in vectors is that the element can be deleted from the vector leaving a memory leak. If you're using vectors with pointers, be careful.

  • @ycp101
    @ycp101 Před 3 lety

    Yes, you are great!
    your ccoding skill are great!
    I envy you!

  • @lowieh.3451
    @lowieh.3451 Před rokem

    I tried casting an int to (std::vector::const_iterator) to use as argument for the erase function, to no avail. Anyone understand what happens when vertices.begin + 1 is used as an argument? It seems there is some conversion going on, right? Why can the '1' be used there without any problem?

  • @amaanmohammed6131
    @amaanmohammed6131 Před rokem

    what happens if there are no vertex does not have parameters would it just be vertices.empalce_back() ?

  • @jms547
    @jms547 Před 4 lety

    At 8:50 there's a note about moving rather than copying. Is there a video about this in this series?

  • @alexdavidsantiago3955
    @alexdavidsantiago3955 Před 4 lety +1

    All the videos have in common that when you made a question and the answer is: "It depends"

  • @chainonsmanquants1630
    @chainonsmanquants1630 Před 3 lety

    Thanks

  • @NoName-tn8rq
    @NoName-tn8rq Před 5 lety

    I tried to do this thing for like 4 hours in total, and now i learned there is library that does this. (wasn't able to do it btw, i got stuck on some exceptions and shit)

  • @_CazaBobos
    @_CazaBobos Před 4 lety

    Can you do something similar in C or just the classic memory allocation commands?
    Also, if I know the amount that I'm going to insert but it's defined by the user is it correct to declare the array like "Arr[nAmount]"?

    • @_CazaBobos
      @_CazaBobos Před 4 lety

      @Peterolen yes, I know about them. The problem is that not every c compiler accepts the example I wrote in the second paragraph. In some microchips you simply can't give variable length, only memory commands.

  • @jonathanolivier6932
    @jonathanolivier6932 Před rokem

    Good video, but if you have a vector of string, what can you do if you want the first character of a string?

  • @rafikmoh9295
    @rafikmoh9295 Před 3 lety

    hello, I have a code which is working for the existing hardware setup but now I want to extend this code for mutiple hardware at a time. for this type of project. can anyone guide me on this this.

  • @1Naif
    @1Naif Před 6 lety

    Awesome.

  • @tannerbarcelos6880
    @tannerbarcelos6880 Před 5 lety

    Yet to understand why my professor decided to teach so much array stuff but said “vectors are the same so I’m gonna skip over them” when in reality, these vectors are beautiful works of art that shit on arrays lol. Simply the fact that they’re dynamic makes life so easy.

  • @sidharthcs2110
    @sidharthcs2110 Před 4 lety

    In physics we can represent a vector as a row or column matrix( kinda like a 1d array ).
    maybe that's why

  • @obenashu9216
    @obenashu9216 Před 5 lety +1

    Please make a video on STL in C++

  • @lizzienovigot
    @lizzienovigot Před 2 lety

    In linear algebra pne of the basic example of vectors is exactly what programmer would think of as an array or a tuple. So mathematically its quite natural to identify arrays and vectors as being very similar, if not the same thing

  • @shahzaman2089
    @shahzaman2089 Před 2 lety

    kindly can someone tell me where is the AISTL link

  • @diassagatov9784
    @diassagatov9784 Před 2 lety +1

    Enough eye contact for today

  • @markuseby5267
    @markuseby5267 Před 6 lety

    What about dynamic arrays using pointers?

  • @omkarsawant3666
    @omkarsawant3666 Před 5 lety

    But is it dynamic?
    I am having confusion with it!
    Plz. Ans

  • @JohnnyRelentless
    @JohnnyRelentless Před 6 lety

    I thought that arrays were pointers, so that you are never really passing the array to the function, but only the pointer, so you wouldn't need to pass by reference. Is it different for dynamic arrays, or am I misunderstanding something?

  • @GenericPhantom1
    @GenericPhantom1 Před rokem

    Dynamic arrays (mostly std::vector) is an array which can resize. You can push new things into it.

  • @PongPongDudlDu
    @PongPongDudlDu Před 3 měsíci

    Hey Cherno!
    I got a little question about passing the vector to a subfunction:
    In the Video at about 12:50 you are passing the vector via Function(vertices);
    I would have expected a Function(vertices&); to specify it as a pointer or a reference, basically.
    In C, every array is automatically passed by reference, it will never be copied.
    Is it in C++ depending on the parameters of the target function as it is a pointer in your example?
    Would love to hear your answer as I am a C developer and sometimes C++ is still a little strange to me.
    All the best!

  • @serkanozturk4217
    @serkanozturk4217 Před rokem

    Personal Notes:
    -dynamic size, at the background it has limited memory but when reaches the limit, it creates a bigger sized memory and copies contents to it.
    - #include
    - std::vector vertices
    To add: entities.push_back((1,0,0)) (must be implicit conversion)
    - can use it in for loop:
    for(Vertex v: vertices) { //do sth }
    To prevent copying and being faster,
    for(Vertex& v: vertices) { //do sth }
    - to delete 2nd element: vertices.erase(vertices.begin()+1)

  • @joriskbos1115
    @joriskbos1115 Před 5 lety +2

    I was writing a little game in c as a bit of a challenge and I had to write my own dynamic array. The way I did it was that you create it with an initial size, but when it exceeds the size, the size of the array doubles. That way I don't have to reallocate the array every single time I add or remove an element, but I'm also not using up too much memory.

    • @sethtaylor7519
      @sethtaylor7519 Před 5 lety +5

      I'm pretty sure that is what vectors do as well.

  • @ehsanafzal1589
    @ehsanafzal1589 Před 4 lety

    11.11 what kind of for loop that is?

  • @claudedestquentin3138
    @claudedestquentin3138 Před 8 měsíci

    THE Best !

  • @otangerineo
    @otangerineo Před 10 měsíci

    i love you papi cherno