brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 27a4e6a Raw
51 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <set>10 11// class set12 13// template <class InputIterator>14//     set(InputIterator first, InputIterator last);15 16#include <set>17#include <cassert>18 19#include "test_macros.h"20#include "test_iterators.h"21#include "min_allocator.h"22 23int main(int, char**) {24  {25    typedef int V;26    V ar[] = {1, 1, 1, 2, 2, 2, 3, 3, 3};27    std::set<V> m(28        cpp17_input_iterator<const int*>(ar), cpp17_input_iterator<const int*>(ar + sizeof(ar) / sizeof(ar[0])));29    assert(m.size() == 3);30    assert(std::distance(m.begin(), m.end()) == 3);31    assert(*m.begin() == 1);32    assert(*std::next(m.begin()) == 2);33    assert(*std::next(m.begin(), 2) == 3);34  }35#if TEST_STD_VER >= 1136  {37    typedef int V;38    V ar[] = {1, 1, 1, 2, 2, 2, 3, 3, 3};39    std::set<V, std::less<int>, min_allocator<int>> m(40        cpp17_input_iterator<const int*>(ar), cpp17_input_iterator<const int*>(ar + sizeof(ar) / sizeof(ar[0])));41    assert(m.size() == 3);42    assert(std::distance(m.begin(), m.end()) == 3);43    assert(*m.begin() == 1);44    assert(*std::next(m.begin()) == 2);45    assert(*std::next(m.begin(), 2) == 3);46  }47#endif48 49  return 0;50}51