标准::唯一和矢量::调整大小
std::unique and vector::resize
唯一和调整大小如何保持不重复发生:
for(map <string, vector<int> >::iterator it = m.begin(); it != m.end(); ++it)
{
vector<int>::iterator sz = unique((it->second).begin(),(it->second).end());
(it->second).resize(distance((it->second).begin(),sz));
}
对向量进行排序。
所以基本上问题是关于阅读文档。
std::unique()
将元素拉到向量的背面,并将迭代器返回到第一个非唯一元素。
在开始序列中可能看起来像:1 1 2 2 2 3 6 6
调用唯一后,序列更改为:1 2 3 6 ...(重复(。
然后
distance()
计算有多少个唯一元素,即从第一个唯一元素到第一个非唯一元素的距离。 .resize()
只是切断了非唯一的部分。
在这种情况下,.erase(sz, (it->second).end);
会更好使用。循环本身也相当奇怪。
相关文章:
- 为char数组调整zlib-zpipe
- 何时在引用或唯一指针上使用移动语义
- 调整大小后指向元素值的指针unordered_map有效?
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 计算排序向量的向量中唯一值的计数
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- 在C++中调整向量中的索引
- 通过组合不同的类型来创建唯一的id
- 使用Unique_ptr确保工厂中的对象唯一
- c++多进程编写一个唯一的文件
- 哪些库可以通过Opencv调整曝光率
- 在以唯一ptr为值的C++映射中,动态内存何时会被销毁
- 如何调整 std::vector of Eigen::MatrixXd 的大小
- 如何更改唯一指针向量的可见性
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- C++尝试深度复制唯一指针时出现内存访问冲突
- Alt+Enter 在 Win32 应用中,管理大小调整和分辨率
- 标准::唯一和矢量::调整大小
- 如何调整属于类的唯一指针的字符数组的大小.它必须在程序的整个生命周期中保持活力