mapset万能初始化函数
时间: 2023-07-30 19:09:08 浏览: 60
mapset是一个第三方库,提供了一个名为`init()`的初始化函数,可以用于如下的初始化操作:
1. 将一个数组或容器的元素添加到mapset中
2. 将一个可迭代对象的元素添加到mapset中
3. 将一个容器的元素按照指定的比较函数添加到mapset中
具体使用方法如下:
1. 将一个数组或容器的元素添加到mapset中:
```c++
#include <mapset.hpp>
#include <vector>
int main() {
std::vector<int> vec {1, 2, 3, 4};
// 使用init()函数将vector中的元素添加到mapset中
mapset<int> ms = init(vec.begin(), vec.end());
// 输出mapset中的元素
for (auto x : ms) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
```
2. 将一个可迭代对象的元素添加到mapset中:
```c++
#include <mapset.hpp>
#include <string>
int main() {
std::string str = "hello";
// 使用init()函数将string中的字符添加到mapset中
mapset<char> ms = init(str.begin(), str.end());
// 输出mapset中的元素
for (auto x : ms) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
```
3. 将一个容器的元素按照指定的比较函数添加到mapset中:
```c++
#include <mapset.hpp>
#include <vector>
// 比较函数,按照元素的绝对值大小进行比较
bool cmp(int a, int b) {
return abs(a) < abs(b);
}
int main() {
std::vector<int> vec {2, -3, 1, -4};
// 使用init()函数将vector中的元素按照指定的比较函数添加到mapset中
mapset<int, decltype(cmp)> ms(cmp);
ms.insert(init(vec.begin(), vec.end()));
// 输出mapset中的元素
for (auto x : ms) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
```
需要注意的是,mapset的初始化函数`init()`返回的是一个mapset对象,因此需要使用`=`运算符进行赋值操作。