首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C++11哈希集合set与向量vector的互转

C++11哈希集合set与向量vector的互转

作者头像
SL_World
发布2021-09-18 16:10:38
发布2021-09-18 16:10:38
2.5K0
举报
文章被收录于专栏:XX

文章目录

1 vector转set

通过unordered_set的构造方法即可获得

代码语言:javascript
复制
unordered_set<int> set(vec.begin(), vec.end());

使用vectorrbegin()rend()反向迭代器可以得到升序结果

代码语言:javascript
复制
unordered_set<int> set(vec.rbegin(), vec.rend());

完整代码

代码语言:javascript
复制
#include <iostream>
#include <unordered_set>  // #include<set> 同理
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    vector<int> vec = { 1, 2, 3, 4, 8, 9, 3, 2, 1, 0, 4, 8 };
    sort(vec.rbegin(), vec.rend());
    unordered_set<int> set(vec.begin(), vec.end());
    for (auto st : set)
	    cout << st << endl;
	return 0;
}

2 set转vector

通过assign()函数来进行分配

代码语言:javascript
复制
vec.assign(set.begin(), set.end());

【注意】:set没有rbegin()rend()反向迭代器

以下总结一下assign()函数的两种用法: 【语法1】:容器.assign(iterator1, iterator2);

代码语言:javascript
复制
// 1.向量
vector_name.assign(iterator1, iterator2);
// 2.队列
deque_name.assign(iterator1, iterator2);
// 其他容器, 如array和string等

【语法2】:容器.assign(size, value); 【功能】:向容器中存储sizevalue

代码语言:javascript
复制
// 1.向量
vector_name.assign(size, value);
// 2.队列
deque_name.assign(size, value);
// 其他容器, 如array和string等

参考文献

[1] C++ deque assign()用法及代码示例

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1 vector转set
  • 2 set转vector
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档