English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ set insert()집합에새로운 요소 삽입.
이러한 원소 키가 집합에서는유일합니다따라서 삽입 작업은 먼저 주어진 키가 집합에 존재하는지 확인하고, 키가 집합에 존재하면 집합에 삽입되지 않고 기존의 이터레이터로 이동하여 키를 반환하고, 키가 존재하지 않으면 새로운 요소를 집합에 삽입합니다.
//일반 레퍼런스 방식으로 매개변수 전달 pair<iterator,bool> insert(const value_type& val); //라이프스톤 방식으로 매개변수 전달 pair<iterator,bool> insert(value_type&& val); //val 값을 일반 레퍼런스 방식으로 전달합니다. iterator insert(const_iterator position, const value_type& val); //val 값을 레이프스톤 방식으로 전달합니다. iterator insert(const_iterator position, value_type&& val); template <class InputIterator> void insert(InputIterator first, InputIterator last); void insert(initializer_list<value_type> il); //부터 C++ 11시작
val:삽입할 집합의 값
position:요소에 삽입할 위치를 나타내는 표시자
first:삽입할 범위의 시작
last:삽입할 범위의 끝
il:초기화 목록
삽입이 발생했는지 여부를 나타내는 불리언 쌍을 반환하고, 새로 삽입된 요소에 대한 이터레이터를 반환합니다.
단일 요소를 삽입하면 복잡도는 대수적입니다.
추가 위치가 제안되고, 제안된 위치가 최적 위치라면 복잡도는 상수로摊销됩니다.
변경이 없습니다.
컨테이너가 수정되었습니다.
이 함수는 예외를 발생시키지 않습니다.
요소를 집합에 삽입하는 간단한 예제를 보여드리겠습니다:
#include <iostream> #include <set> using namespace std; int main() { set<int> s; // 요소를 삽입하는 함수 // set 컨테이너에 s.insert(1); s.insert(4); s.insert(2); s.insert(5); s.insert(3); cout << "집합의 요소는: "; for (auto it = s.begin(); it != s.end(); it++) cout << *it << " "; return 0; }
출력:
집합의 요소는 다음과 같습니다: 1 2 3 4 5
위 예제에서는 주어진 키를 사용하여 요소를 삽입했습니다.
이제 요소를 지정된 위치에 삽입하는 간단한 예제를 보여드리겠습니다:
#include <iostream> #include <set> using namespace std; int main() { set<int> s; //요소를 삽입하는 함수 //set 컨테이너에 auto itr = s.insert(s.begin(), 1); itr = s.insert(itr, 4); itr = s.insert(itr, 2); itr = s.insert(itr, 5); itr = s.insert(itr, 3); cout << "집합의 요소는: "; for (auto it = s.begin(); it != s.end(); it++) cout << *it << " "; return 0; }
출력:
집합의 요소는 다음과 같습니다: 1 2 3 4 5
위 예제에서는 요소가 정의된 위치에 삽입되었습니다.
이제 간단한 예제를 보여드리겠습니다. 주어진 범위의 요소를 다른 집합에 삽입하는 것을 보겠습니다:
#include <iostream> # include<iostream> # include<set> using namespace std; int main() { set<int> s1; //요소를 삽입하는 함수 //set 컨테이너에 s1.insert(1); s1.insert(4); s1.insert(2); s1.insert(5); s1.insert(3); cout << "set1의 요소는 다음과 같습니다: "; for (auto it = s1.begin(); it != s1.end(); it++) cout << *it << " "; set<int> s2; //함수는 하나의 집합을 다른 집합에 삽입합니다 //부터3까지의 모든 요소를 삽입합니다 //set에2 s2.insert(s1.find(3), s1.end()); cout << "\nset2의 요소는 다음과 같습니다: "; for (auto it = s2.begin(); it != s2.end(); it++) cout << *it << " "; return 0; }
출력:
set1의 요소는 다음과 같습니다: 1 2 3 4 5 set2의 요소는 다음과 같습니다: 3 4 5
이제 간단한 예제를 보여드리겠습니다. 초기화 목록에 요소를 삽입하는 것을 보겠습니다:
#include <iostream> #include <set> using namespace std; int main(void) { set<string> m = {"Java", "C"}++", "SQL"}); // 초기화 목록에 추가된 요소 m.insert({"VB", "Oracle"}); cout << "집합에 포함된 요소:" << endl; for (auto it = m.begin(); it != m.end(); ++it) cout << *it<< endl; return 0; }
출력:
집합은 다음 요소를 포함합니다: C++ Java Oracle SQL VB
위의 예제에서 요소는 초기화 목록에 추가됩니다.