STUDY/C++(15)
-
C++ - list
list 의 헤더는 #include 이다. 리스트는 아시다시피 양방향 연결구조를 가진 자료형이다. 벡터의 단점은 임의의 위치에 원소를 추가하려면 그 위치를 찾아가서 삽입/제거 해야하기때문에 시간 복잡도가 O(n)이지만, 리스트는 O(1)이다. vector와 다른점은, 위치를 이동할때 (loop 쓸때) lst + 5 요런건 불가능하다는거다. (vec.begin() + 5 이런것.. ) 함수는 vector와 동일한듯. push_back, pop_back... #include #include using namespace std; int main() { list lst; //list pointer 선언.. list::iterator iter = lst.begin(); for(int i = 0; i < 5; i+..
2022.08.06 -
C++ - vector
C++ 에서는 , 정적배열 선언시 배열의 크기를 정해야하는 단점을 보완한 것이라고한다. 애초에 동적배열 . vector는 push_back() , pop_back() 로 삽입과 삭제가 이루어진다. vector 배열의 size는 vec.size() 로 정의된다. vector 자료형은 값이 추가가 될 때마다 공간을 늘려가며 할당을 하므로, 더 큰 여유공간을 할당해둔다. 이걸 vec.capacity()라고 한다. 우선 자주 쓰이는 함수를 정리해보자. 임의의 위치 원소 접근 : vec.at[i] (시간복잡도 : O(1)) 원소 추가 및 제거 : push_back(i) / pop_back(i) (시간복잡도 : O(1)) 임의의 위치 원소 추가 및 제거 : insert(vec.begin() + 2, 15), era..
2022.08.06 -
vector & array
# header: #include 배열 대체용품. 일일히 정의해줄필요없이 유용한 함수들이 많다. #include #include using namespace std; int main() { int N; cin >> N; //테스트케이스 N vector v; //벡터 정의 for (int i = 0; i >a; v.push_back(a); } for (int i = 0; i > c; int **arr; arr = new int*[r]; for(int i = 0; i < c; i++) { arr[i] = new int[c]; } for(int i = 0 ; i < r; i++) ..
2022.08.04 -
C++ 입출력 속도 줄이기 !
나는 시간이없다. 빠르게 빠르게 해야하는데 입출력에서 시간을 낭비하면 안된다 ! cin / cout 으로 보통쓰는데, 이게 일반적으로 사용하면 느린갑다. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 요걸 넣어주면 좀 더 빨라진다고하니, 한번 써볼까? 편법이라고하는데, 조건이 있다. 1) 싱글 스레드에서만 사용가능. 2) printf, scanf와 섞어서 사용하면 안됨 ! 근ㄷㅔ...코테에서도 이거 쓰나....? 쓰는거 못본거같은데 ... 흠... 찾아봐야겠군... #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout..
2022.08.03 -
C++ 빠르게 익히기.
C언어와 다른점 / 같은점 으로 우선 구분한다 !!! # 같은 점 기본적인 문법구조 : 조건문 ; if / else, switch 문 동일. 제어문 : for / while / break / continue 등등 은 동일하다. # 다른점. 1. print하는게 다르다. scanf 는 cin 으로 받고, cout 는 printf를 대신한다. 끝에 endl은 줄바꿈 + flush인데, 그거 말고 그냥 \n 으로 줄바꿈 하는게 낫다고한다. #include using namespace std; int main() { int N; int *arr = new int[2]; for(int i = 0 ; i > arr[i]; for(int i = 0 ; i >..
2022.08.03