STL Tutorial
https://www.cs.helsinki.fi/u/tpkarkka/alglib/k06/lectures/containers.html
Vector:
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
int i;
cout << "vector size = " << vec.size() << endl;
for(i = 0; i < 5; i++) {
vec.push_back(i);
}
cout << "extended vector size = " << vec.size() << endl;
for(i = 0; i < 5; i++) {
cout << "value of vec [" << i << "] = " << vec[i] << endl;
}
vector<int>::iterator v = vec.begin();
while( v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
}
return 0;
}
Vector:
- Vectors are sequence containers that have dynamic size. In other words, vectors are dynamic arrays. Just like arrays, vector elements are placed in contiguous storage location so they can be accessed and traversed using iterators.
- Vector provide random access.
- Insertions and deletions in the beginning or in the middle are slow.
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
int i;
cout << "vector size = " << vec.size() << endl;
for(i = 0; i < 5; i++) {
vec.push_back(i);
}
cout << "extended vector size = " << vec.size() << endl;
for(i = 0; i < 5; i++) {
cout << "value of vec [" << i << "] = " << vec[i] << endl;
}
vector<int>::iterator v = vec.begin();
while( v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
}
return 0;
}
- A list is implemented as a doubly linked list.
- Lists do not provide random access.
- Fast insertion and deletion anywhere.
|
Deque:
- deque is a dynamic array that is implemented so that it can grow in both directions.
- Inserting element at the end and at the beginning is fast. Inserting and elements in the middle, however, takes time because element must be moved.
- Insertion and deletion in the beginning in (amortized) constant time.
Slower element access and iterators.
Set:
#include<set> int main() { std::set<int> setOfNumbers; setOfNumbers.insert(1); setOfNumbers.insert(2); setOfNumbers.insert(3); setOfNumbers.insert(4); std::cout<<"Set Size = "<<setOfNumbers.size()<<std::endl; std::set<int>::iterator it; for (it=setOfNumbers.begin(); it!=setOfNumbers.end(); ++it) std::cout << ' ' << *it; std::cout<<"\n"; return 0; } |

Comments
Post a Comment