- C++ STL中的容器和算法
Vector,list,map,stack,queue这些需要明白,算法包含alogrithm
常见的算法包括:
For_each()
Find()
Find_if()
Count()
Count_if()
Replace()
Releace_if()
Copy()
Unique_copy()
Sort()
Equal)range()
Merge()
List<T> 一个双向链表容器,完成了标准C++数据结构链表的所有功能。
Queue<T> 一种队列容器,完成了标准C++数据结构队列的所有功能。
Stack<T>,一种栈容器,完成了C++标准数据结构栈的所有功能
Deque<T>,双端队列容器,完成了标准C++数据结构中栈的所有功能。
Priority_queue<T>,一种按照值排序的队列容器
Set<T>,一种集合容器
Multiset<T>,一种允许出现重复元素的集合容器
Map<key,value>一种关联数组容器
Multimap<key,value>,一种允许出现重复key值得关联数组容器。
Vector的用法:
Vector的初始化可以有五种方式:
Vector<int> a(10);没给初始值,大小是10
Vector<int> a(10,1);大小是10,初始值是1
Vector<int> a(b.begin(),b.begin()+3);//将b的0 1 2元素给a
Vector<int> a(b);
Int b[7] = {1,2,3,4,5,9,8};
Vector<int> a(b,b+7);//从数组中获得初始值
Map的用法:
Map<int,int>删除key值为偶数的元素
#include<iostream>
#include<map>
using namespace std;
void eraseKey(map<int, int>& nums)
{
for (map<int, int>::iterator it = nums.begin(); it != nums.end();)
{
if (it->first % 2 == 0)
{
nums.erase(it++);
}
else{
it++;
}
}
}
void showMap(map<int,int> nums)
{
for (map<int, int>::iterator it = nums.begin(); it != nums.end(); it++)
{
cout << it->first << " " << endl;
}
}
void main()
{
map<int, int> nums;
for (int i = 0; i < 100;i++)
nums[i]=2;
showMap(nums);
eraseKey(nums);
showMap(nums);
}
Stack例子:
Include<stack>
void main()
{
stack<int> st;
for (int i = 0; i < 100; i++)
{
st.push(i);
}
cout << "开始弹出堆栈的元素" << endl;
while (!st.empty())
{
cout << st.top() << endl;
st.pop();
}
}
- C++空类中有哪些默认的函数?
- 构造函数
- 拷贝构造函数
- 析构函数
- 赋值运算符重载函数
- 取地址操作符重载函数
- Const修饰的取地址操作符重载函数