容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型。
1、multiset
#include <iostream>
#include <set>
#include <stdio.h>
using namespace std;
int main(void)
{
multiset<int>Myset;
Myset.insert(10);
Myset.insert(10);
Myset.insert(20);
Myset.insert(40);
Myset.insert(30);
Myset.insert(110);
auto ibegin = Myset.begin();
auto iend = Myset.end();
for (;ibegin != iend; ibegin++)
{
std::cout << *ibegin << " "; //会自动排序 ,但不会剔除重复值
printf("%p,%p\n", ibegin._Ptr, ibegin); //智能指针
//printf("%p,%p\n",ibegin,ibegin._Ptr); //bug
}
cin.get();
return 0;
}
2、vector和array
#include <iostream>
#include <vector>
#include <array>
#include <stdlib.h>
using namespace std;
int main(void)
{
vector<int>Myvector; //无需知道大小,容量较大,需要变长
Myvector.push_back(1);
Myvector.push_back(2); //动态数组 在堆上
for (int i = 0; i < Myvector.size(); i++)
{
cout << Myvector[i] << " ";;
}
array<int, 4>Myarray = { 1,2,3,4 }; //容量较小,不需要变长
for (int i = 0; i < Myarray.size(); i++) //静态数组 ,在栈上
{
cout << Myarray[i] << " ";
}
cin.get();
return 0;
}