容器
容器的本质是类模板,分为序列容器和关联容器
array 固定数组 应用包含arrry库
vector 动态数组 应用包含 vector库
deque 双端队列
list 双向链表
forward_list 单向链表
stack 栈
queue 队列
prority 优先队列
int main()
{
std::array
std::cout << ObjArr.size() << std::endl; 输出数组大小
for (size_t i = 0; i < 5; i++) 遍历该数组
{
std::cout << ObjArr[i] << "\t";
}
std::cout << std::endl;
std::array
for (size_t i = 0; i < 5; i++)
{
std::cout << ObjArr2[i] << "\t"; 同被拷贝数组一致
}
std::cout << std::endl;
ObjArr[4] = 120; 该数组可以同普通数组一样进行赋值
for (size_t i = 0; i < 5; i++)
{
std::cout << ObjArr[i] << "\t";
}
std::cout << std::endl;
ObjArr.at(3) = 12138; 修改第三个下标为12138
for (size_t i = 0; i < 5; i++)
{
std::cout << ObjArr[i] << "\t";
}
std::cout << std::endl;
std::cout << ObjArr.data() << "\t";
std::cout << std::endl;
int * p = ObjArr.data(); 获取数组真实地址,指向该数组内存首地址
for (size_t i = 0; i < 5; i++) 遍历输出该数组
{
std::cout << *p++ << "\t";
}
std::cout << std::endl;
std::cout << ObjArr.front() << std::endl; 获取数组首位置元素
std::cout << ObjArr.back() << std::endl; 获取数组末位置元素
if (ObjArr.empty()) 判断当前数组是否为空
{
std::cout << "Enpty" << std::endl;
}
}
template
void print(T Begin, T end) 遍历打印
{
for (T i = Begin; i != end; ++i)
{
std::cout << *i << std::endl;
}
std::cout << std::endl;
}
int main()
{
using ArrayIterator = std::array
std::cout << typeid(ArrayIterator::iterator_category).name() << std::endl;获取该迭代器类型,是随机访问迭代器
std::array
std::array
print
std::array
std::cout << *tempvarA << std::endl;
tempvarA++; 地址++
std::cout << *tempvarA << std::endl;
tempvarA--; 地址--
std::cout << *tempvarA << std::endl;
tempvarA -= 2; 地址-2
std::cout << *tempvarA << std::endl;
std::cout << tempvarA[3] << std::endl; 打印下标3的元素
*tempvarA = 555; 修改当前地址即首地址的值为5
print
std::cout << "--------------------------------" << std::endl;
std::cout << ObjArr.front() << std::endl; 输出第一个元素
std::cout << "--------------------------------" << std::endl;
std::cout << ObjArr.back()<< std::endl; 输出最后一个元素
std::cout << *ObjArr.rbegin() << std::endl; 输出反向第一个元素
print(ObjArr.rbegin(), ObjArr.rend());输出反向第一个和最后一个元素
system("pause");
return 0;
}
以下为该程序输出结果