[STL] Set 생성, 삽입, 삭제 등 사용법 포스팅 썸네일 이미지

C++/Container

[STL] Set 생성, 삽입, 삭제 등 사용법

1. set set은 특정 기준에 의하여 원소들이 자동 정렬되는 노드 기반 컨테이너이다. set은 기본적으로 오름차순(less) 정렬이고 greater 조건자를 줌으로써 내림차순으로 정렬할 수도 있다. set은 유일한 원소만을 갖을 수 있는 구조로서 수학적으로 집합을 의미하는 것을 알 수 있다. 중복된 원소를 갖고자 한다면 multiset을 사용하여야 한다. 또한, 균형 이진 트리로 구현되어 빠른 시간으로 원소를 탐색할 수 있으며 이에 따라 탐색할 수 있도록 여러가지 탐색 함수를 제공해 준다. 2. 코 드 환경 : Visual Studio 2019 #include #include using namespace std; int main() { /* 생성자 */ set set;// 오름차순, 기본 값 : le..

2020.11.05 게시됨

[STL] List 생성, 삽입, 삭제 등 사용법 포스팅 썸네일 이미지

C++/Container

[STL] List 생성, 삽입, 삭제 등 사용법

1. list list는 vector와 deque처럼 상대적인 순서를 유지하는 컨테이너이다. 하지만 vector와 deque가 배열 기반이였다면 list는 노드 기반으로서 이중 연결 리스트로 구현되어 있다. 그래서 vector와 deque와 멤버 함수가 유사하면서도 추가적으로 여러 함수가 더 있다. list는 이중 연결 리스트로 구현되어 있기 때문에 vector, deque에서 비효율적이였던 insert()를 사용한 중간 삽입 또한 효율적으로 동작한다. ( 이중 연결 리스트에서는 링크만 바꾸어 주면되므로...) 따라서 상대적인 순서를 유지해야하며 중간에 삽입, 삭제가 빈번하게 발생할 것으로 예상된다면 list 컨테이너를 사용하는 것이 좋다. 2. 코 드 환경 : Visual Studio 2019 #inc..

2020.11.04 게시됨

[STL] Deque 생성, 삽입, 삭제 등 사용법 포스팅 썸네일 이미지

C++/Container

[STL] Deque 생성, 삽입, 삭제 등 사용법

1. deque deque, 디큐 혹은 덱이라고 부른다. deque 또한 vector와 마찬가지로 배열 기반 컨테이너로서 vector의 있는 멤버 함수들과 거의 유사하다. vector와 다른점을 말하면 바로 보이는 것으로는 push_front(), pop_front()가 있다. 해당 멤버 함수들을 사용하여서 vector에서는 뒤에서만 push, pop 하였다면 deque는 앞과, 뒤 2방향에서 원소를 삽입하거나 삭제할 수 있다. (사실 insert, erase 멤버 함수를 사용하면 vector도 삽입, 삭제 가능함. 단, 비효율적) 그래서 스택+큐의 구조라 볼수 있다하지만 이는 엄밀히 말하자면 아니며, 쉽게 기억하기 위하여 스택+큐 구조다라고 생각만 하면 될 것이다. 또한, 눈에 보이지는 않지만 vect..

2020.11.04 게시됨

C++ 문자열 나누기 - string split 포스팅 썸네일 이미지

C++/Algorithm

C++ 문자열 나누기 - string split

1. split Java, JavaScript, Python 등등 대부분의 언어에서 지원하는 문자열 함수이다. split은 특정 문자를 기준으로 문자열을 나누어 준다. ex) 문자열 "abc ef ghi" 을 " "로 나눈다하면 "abc", "ef", "ghi" 를 리턴해준다. 2. 코 드 환경 : Visual Studio 2019 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; vector split(string s, string divid) { vector v; char* c = strtok((char*)s.c_str(), divid.c_str()); while (c) { v.push_bac..

2020.11.03 게시됨

[STL] Vector 생성, 삽입, 삭제 등 사용법 포스팅 썸네일 이미지

C++/Container

[STL] Vector 생성, 삽입, 삭제 등 사용법

1. vector vector은 배열 기반 컨테이너이다. 따라서 배열과 비슷하여 사용하기 쉬워서 빈번하게 사용된다. 하나의 메모리 블록에 연속하여 저장되는 특징을 갖는다. 연속하여 저장되어 원소에 접근하는 경우 연산은 빠르지만 삽입, 삭제가 빈번하게 호출되어야 하는 경우 상당한 비용이 소모될 수 있다. - 정 렬 C++ vector 정렬(sort) - 오름차순, 내림차순 1. 정렬(Sort) C++ 에서는 STL algorithm 라이브러리에서 sort 함수를 지원해준다. 정렬 방식은 퀵 정렬로서 빠른 속도를 보장한다. sort 함수는 일련의 반복자를 사용함으로 Set이나 Map 같은 컨테이너에 notepad96.tistory.com - 값 묶어서 저장 C++ 2쌍, 3쌍 값 묶기 - Pair, Tupl..

2020.11.03 게시됨

Kotlin sort 정렬 오름차순, 내림차순, 임의 순 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin sort 정렬 오름차순, 내림차순, 임의 순

1. Sort(정렬) kotlin은 다양한 sort 함수를 제공하여 상황에 맞은 sort 함수를 사용해야 한다. 우선 간단하게 분류를 해보면 우선 sort와 sortDescending 이 있다. sort인 것은 오름차순 sortDescending 처럼 Descending이 붙으면 내림차순으로 정렬을 한다. 또한 sort와 sorted처럼 뒤에 ed가 붙는 것과 붙지 않는 것이 있다. 뒤에 -ed가 붙는 것은 정렬된 List 타입으로 반환해준다. 따라서 -ed가 붙는 sort를 사용해 주는 경우, 해당 리스트에 다시 초기화를 해주어야만 정렬된 리스트를 저장한다. 이 외의 -By, -With와 같은 sort가 존재한다. +) MutableList타입일 경우 sort, sorted 2가지 다 존재하며 sort..

2020.10.11 게시됨

Kotlin JS sort 정렬 오름차순, 내림차순, 임의 순 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin JS sort 정렬 오름차순, 내림차순, 임의 순

1. Sort(정렬) kotlin은 다양한 sort 함수를 제공한다. 간단하게 분류를 해보면 우선 sort와 sortDescending 이 있다. sort인 것은 오름차순 sortDescending 처럼 Descending이 붙으면 내림차순으로 정렬을 한다. 또한 sort와 sorted처럼 뒤에 ed가 붙는 것과 붙지 않는 것이 있다. 뒤에 -ed가 붙는 것은 정렬된 List 타입으로 반환해준다. 따라서 -ed가 붙는 sort를 사용해 주는 경우, 해당 리스트에 다시 초기화를 해주어야만 정렬된 리스트를 저장한다. 2. 코 드 환경 : 1.4.0 JS play.kotlinlang.org/ fun main() { var num = arrayOf(5, 8, 2, 1, 9, 4); println("=======..

2020.10.09 게시됨

Kotlin 변수 묶기 Pair, Triple 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin 변수 묶기 Pair, Triple

1. 2개의 변수 묶기 - Pair data class Pair (val first: A, val second: B) Pair 클래스는 다음과 같이 정의되어 있다. Pair 클래스는 data class로서 2개의 변수를 묶어 사용하기 유용하다. fun main() { var a: Pair = Pair(3, "Kim") var b: Pair = 1 to "Lee" println(b.toString()) b = b.copy(first = 5, second = "god")// 값 변경 if(a.first > b.first) println("a turn") else println("b turn") } pair 변수를 생성하기 위해서는 Pair 생성자를 사용하거나 to를 사용할 수 있다. toString을 호출하..

2020.10.08 게시됨