【STL 1】
来源:互联网 发布:中国软件 编辑:程序博客网 时间:2024/04/29 07:59
1. map操作
MAP里的查找
map<int , GalaxyMap>::iterator iter = m_Maps.find(id);
if (iter == m_Maps.end())
return NULL;
MAP里的清除
M_maps.erase(id);/////清除掉id所在的那个元素,返回的是下一个元素
MAP可以直接用
M_Maps[id] = 1; 来赋值,M_Maps[id]可以是原来MAP中没有的元素
MAP的每个元素都是个PAIR类。
也可用插入:
M_Maps.insert(map<int , GalaxyMap>::value_type(id map1));
value_type表示容器中每个元素所使用的键/值对。
根据键值c查找用:find(j键值),根据值查找 用:find_if()
2.向量
赋值:
1 vector<int> v1; vector<int> v2;
V1= v2 //////直接赋值
2.vector<int> v4;
v4.reserve(10); /////控制V4为10个元素
v4.insert(v4.begin(), &v1[0], &v[9]);
3.vector<int> v5(10);
copy(v5.begin(), &v1[0], &v1[9]);
添加
Push_back ////添加在尾部
出数组: POP_BACK //////删除最后一个元素
添加也可用 insert( vi.begin()); ////通过具体位置插入
注: 数组下标不能用于想链表中插入元素,只能访问已有元素
删除也可
m_PartId.erase(m_PartId.begin()+i);/////通过具体位置删除,返回的是下一个元素
清楚所有使用Clear()函数
Reserve( num )函数用于通过传递一个大小参数Num来在向量中保留一个缓冲区。 这个值可以通过调用capacity()检索到。 如果capacity() == reserve()且又有个元素插入数组,则会进行一次内存分配且当前所有的迭代器都将失效。要决定可分配给单个向量的最大内存数量,使用max_size()函数
Push_front() ,Push_back() ,Pop_front(),Pop_back()用于入队,出队
从数组中删除一个元素的方法
Vector<int> at;
For(Vector<int>::iterator iter = at.begin();iter!=at.end();)
{
If((*iter)==3)
{
Delete(*iter);
Iter = at.erase(iter);
}
Else
{
++Iter;
}
}
一般来说z最好用算法来从容器中删除元素,而不是手工迭代来做,如算法:remove_if()
reverse_iterator w为反向迭代器。
一般在迭代循环里用前置叠加:++iter,e而不是iter++,这样做的好处是提高效率,因为后者需要返回一个当前旧制的拷贝。
在其他容器里用erase()删除特定元素,将返回下一个有效位置,而map里erase不返回下一个有效位置。
- stl-1
- 【STL 1】
- STL(1)
- STL-1
- stl <1>
- STL(学习笔记1-STL巡礼)
- Effective STL 条款1
- STL源码剖析(1)
- Effective STL 读书笔记 1
- STL(1)
- STL实践指南(1)
- stl study 1
- stl学习笔记1
- STL杂记(1)
- Effective STL 条款1
- STL学习体会1
- STL List 实现(1)
- STL实践指南(1)
- 浅析需求开发
- 脾虚症状及调理
- windows API 动态加载驱动
- 运行 DAEMON TOOL 时 提示 Virtual SCSI driver not detected
- VMWare 网络配置
- 【STL 1】
- Overview of ACE
- 各种软件版本的含义
- 详述摄影测量和机器视觉下共线方程的区别
- P2P在网游中可行性的杂思
- xcsssssssssssss
- Java日期计算
- linux启动分析
- windows API 相关小函数