Today we’ll be talking all about dynamic arrays into bus basically the standard backed up close so now that we’re finally beginning to rise and courtesy bus because it’s very important that we get accustomed to see C++ the standard library or in this case something called a standard template library nonsense template libraries essentially a library filled with containers containing times right things that contain certain daughter is called a standard template library because you can template into anything the whole address templated meaning that the underlying daughter time all of the containers on otherwise the diet type of the content it contains that is actually up to you to decide the whole thing is made of templates which reminds me we need to talk about templates and we will very soon templates are huge topics to look kind of divided from beginning to advanced kind of templates as we go along but essentially all you need not to use the you need to know anything about templates to actually use the Senate template library all you need to know is that you can provide the underlying data type that. dynamic arrays dynamic arrays
This data structure actually handles and that’s pretty cool makes a very versatile and it means that you don’t have to resort to writing your own data structures or anything like that so is the muscles provides us with a class called effect and that matters in the STD namespace now it’s called back so that’s the first problem why is it called that tough well. There’s actually a story behind that of late as I look an article over a page in the description that will actually talk about that but it shouldn’t be called back so it should be called something like array list because that makes the most sense is essentially a dynamic or what went on in the car right but not that that’s a very weird name for this and a lot of people who first kind of get in staples plaza really get confused about 1 is that the thing is it a mathematical backed up 99 it’s kind of like a set it’s a step that doesn’t enforce any kind of unique and potential elements Sir in other words it’s basically an array but unlike the normal rate times and in several spots even just roll or rice or the standard array class which we might which we actually did mention in the race but if you guys haven’t seen that click up that but we will probably have a dedicated article about that as well I’m like a rate this can actually right size which means that when you create this actor when you read. dynamic arrays dynamic arrays
This dynamic right it doesn’t have a set size you can give us that size and whatever if you wanted a slice of with a certain size but you basically don’t give it a science you just crave the specter this array and then you basically just put elements into it and every time you put an element into it the size grows so I can start off not knowing how many elements actually 1 in my right and then just push 10 things into it and suddenly I have a right with 10 items now to people who kind of on you to programming on your computer science might be like well how does that work how could how is it possible to just have an R. rated responses and we’re actually going to over the course of this type of cluster is we’re actually going to be re rewriting a lot of these data structures that existence give us ourselves and in a lot of cases were actually can optimize them and make them a lot faster than the ones in the standard template library because. This is one of the 17 time I’m free on especially fuss that’s not really the priority of them and start and a lot of cases studios and teams end up actually creating their own content libraries and example I work in a as an example is we use something called E. A. S. T. L. there’s a link to the indiscretion blows on get hub you can look at the source code that’s one example of something that is actually usually in most cases a lot faster than the stuff that’s actually the sentiment anyone needing a little bit ahead of myself here the point is that the way the Senate actually what we’ll talk about that more in more detail. dynamic arrays dynamic arrays
In the future VDR however the gist of it is that basically when you exceed the size that is allocated Sir when you make a vector it might allocate like 10 elements for example enough memories to 10 elements when you exceed that it basically creates a new array in memory this big than the fast one copies everything to that and then delete the old one and that way you suddenly just have basically new array to somewhere else in memory that has a little more storage and you can keep adding things to it like that in practice it actually tends to allocate quite often and isn’t the best performance wise unless you set it up properly so this article is going to be for beginners who don’t know what this fact thing is how you can use it all that and dynamic arrays dynamic arrays then I think the next article after this one where should I talk about specifically how we can use this data in an optimal way and they’ll kind of get into more advanced things Sir if you want to check that article out of you already know I have that to lessen your wasted time within this year click on the link right that and I’ll take the advanced I guess article and we’ll talk about how we can optimize our usage of the fact that loss but for now let’s create a dynamic right so what I’m going to be here is a basic structure yeah this is that Texas is specifically about sex position I should add as you can see it’s gone explains that this is just a dummy class it really could be anything. dynamic arrays dynamic arrays
I’ve also written an output operator because you’re just so that we can print this easily to the council if we want to make actual static array of this would kind of have 2 choices right you. During the senator right plus we could just trade static array which might have 5 elements in it but this way we’re kind of getting tied to the size and even if we do allocated on the heap like sorry you can say that what kind of still tied to the size and we’ve kind of allocated 5 notices which means that we can access 0 through fall again if you’re not sure how to raise a lot definitely check out that article fast but we can access the index 0 through full and then if we trying to hire a we could run into a problem and sometimes that’s just not good enough because we want to keep adding that it’s for example we might have a program where we allow the user to enter and dasa we don’t really want to stop the use off to dinner maybe 10 that is the whole thing is a sorry contacts anymore if we want to keep that going we need a way to say that when you reach them that Max capacity resized get back up so that. dynamic arrays dynamic arrays
You can store one Dada another solution to this problem is kind of allocating instead amount of fantasies and then basically just saying that’s the hard limit for the program anything above that is ridiculous when I’m going to hit that anyway so basically this program does support unlimited data stays that way but of course that’s also not ideal because it means that you’re using all of that memory where is this if we only have 5 issues that’s a huge waste so what we can do instead is use the back to class I’m going to include VAX up over here and I’m going to go ahead make once the way that we make one as we type in S. de facto then we specify the time not this time it is just a C. C++ time off what is actually going to be in the array so in our case we lost all that is still type Investec south cold is that it’s just like that and that’s it went on now it’s worth noting that unlike languages like Java. dynamic arrays dynamic arrays
Note.. This 1st part of this article click here to see next part.