본문 바로가기

Language20

[c++/인프런] 3) 10주완성 알고리즘 c++ 출처 인프런 - 10주 완성 c++ memcpy()와 copy() 깊은 복사를 할 때 memcpy()와 copy()를 쓴다.!!( 깊은 복사(deep copy) 새로운 메모리 공간을 확보해 완전히 복사하는 것으로 복사한 배열이 수정되어도 원본에 영향 x! , 반면 얖은복사(shallow copy)는 포인터로 메모리 주소값을 복사하게 되므로 수정하면 원복이 수정됨) memcpy() : array 끼리 복사할 때 copy() : Array , vector 복사할 때 (이제 복사한다 for 루프 돌리지 말고..... copy()를 사용하자!) memcpy 구조 (목적지, 근원지, 사이즈) v 어레이는 ret어레이에 영향을 받고 선언을 ret [2]로 했을 때는 돌아가긴 함. 앞에서부터 채워짐 copy() 구조.. 2023. 4. 30.
[인프런] 3일차- 알고리즘을위한 C++ [P 62~] 이터레이터(iterator) => 컨테이너에 저장되어 있어는 요소의 주소를 가리키는 개채 (포인터를 일반화 한것으로 이터레이터는 컨테이너 범위안에 요소들을 순회하는 과정을 담당하는것으로 이해하자) 특징으로는 1) 주소값을 바로 반환하지 못하기에 &* 붙여서 반환 가능. (아... 그래서 그냥 cout 프린트할려면 에러..) 2) 값을 반환하기위해서는 * 포인터 붙여주기 또다른 방법은 == "1 2 3 4 5" 이 방법은 반드시 숙지하고 숙지해야한다. 매우 자주 쓰이는 포맷으로 인숙해지자. 함수(Function) fill() : 모든 값으로 초기화 할 수 있음 memset() : -1, 0으로만 초기화가 가능함. fill() 보다 빠르기 때문엥 시간적으로 더 최적화 할 수 있음. fill의 .. 2023. 4. 29.
[인프런] 2일차- 알고리즘을 위한 c++ 기본 배우기 릿코드에서 결제했던 강의로 어느정도감을 잡았으나 이게 잘하고있는게 맞는가 싶어서 인프런에서 c++ 10주 알고리즘 강의를 결제를 했다. 알고리즘은 꾸준히 해야 실력이 늘기 때문에 하루하루 조금이라도 꾸준히 해볼려한다. 저작권에 걸리지않게 최대한 나의 생각을 집어넣어서 배운걸 정리해보면 좋지않을까한다. 처음가입하면 교안을 나눠주는데 이떄 c++을 잘몰라도 알고리즘에 필요한것들을 알려준다. 1. Split() 함수 : c++에서 가장 취약한것은 string에대한 처리가 부족한것이다. 이는 조금만 정리하면 된다고 설명한다. 시간복잡도 O(n) 가장중요한 함수루틴 설명을 기똥차게해주시네. 2. atoi(s.c_str()) 함수: 입력받은 문자열이 문자면 0 반환 아니라면 숫자반환해주는 확인함수 3. pair ,.. 2023. 4. 28.
[c++] Command Line Argument 참고 : GeeksforGeeks int main() { /* ... */ } c/ c++에서 가장 중요한 함수은 메인 함수는 return값으로 int 를 반환한다 오늘의 주제 "command-line arguments 는 commnad-line shell 오퍼레이팅 시스템 안에 시스템이름 다음으로 오는것으로 표기법은 많이본 아래와 같은 형식을 가진다. 다른 사람이 짜놓은 프로그램을 보면 뭔가했는데 간단히 알고 짚고넘어가면 좋을듯하다. int main(int argc, char *argv[]) { /* ... */ } int main(int argc, char **argv) { /* ... */ } 간단한 설명으로는 코드를 돌리기위해 지정된 프로그램 이름을 선언해줘야하는데 이를 자동으로 입력해주는 역할을.. 2023. 1. 5.
[c/c++] Pointers to Arrays && Arrays as function arguments 포인터 관련 영상을 보던중 유튭에서 3시간짜리 Pointer만 전문적으로 다룬 강의 발견! 설명과 비주얼라이제이션을 기똥차게 잘하여 리포트 쓰던중 토막내어 공부. 기본인것같지만 다음 토픽을 위해 짚고넘어가기. A = &A[0] 이다!!! Array 이는 memory view서 보듯이 각 element하나씩 4바이트를 차지하며 올라간다. P variable은 address:200 을 지칭하게된다 저번 c code를 작성하다가 알게됬는데 다시 여기서 보니 반갑. SOE() 안에 넘겨진 Array는 사실 int * A 로 넘겨지며 Size를 프린트하면 4 bytes가 넘겨진다. not 20 bytes, (이유로는 SoE()의 int *A 가 A의 첫번째 address:200 를 지칭하고있기떄문! Array 를.. 2022. 11. 29.
[c++] 깊은 복사(Deep copy)와 얕은 복사(shallow copy) 코딩을 공부하다보면 자꾸 깊은 복사와 얕은 복사에 대한 개념이 나오는데 무슨 개념인가 너무 궁금해 정리. 한줄로 정리하면 => 얕은 복사는 reference를 이용해 한 공간의 메모리를 공유하는 형태로 사용하는것. => 깊은 복사는 각각의 오브젝트가 각각의 메모리를 가지고있는것. geeksforgeeks 얕은 복사 예제! (너무 잘 표현하고있어서 통쨰로 ) // C++ program for the above approach #include using namespace std; // Box Class class box { private: int length; int breadth; int height; public: // Function that sets the dimensions void set_dime.. 2022. 11. 23.
[c++][pointer vs reference 정복 2] Pass by value vs Pass by reference 코드없는 프로그래밍 유튜브가 생각나서 오늘은 기본이 되는 pass by value vs pass by reference vs pass by pointer를 다뤄 볼려고한다. 함수에 argument (함수에 인풋으로 들어가는것들) 를 넘겨주는 방식은 3개지가있는데 value, reference , pointer 가있다. - 여기서 a 는 value가 넘어간것이고 - 이 함수에서는 포인터가 - 이 함수에서는 & 가 넘어가서 argument가 넘어간것이다. 이어지는 R-value와 L-value 의 설명 이 두 개념은 c++ 에만 있는 고유개념으로 OOP하기전에 알아야하는 유용한 개념 L-Value : 바뀔 수 있는 값이고 R-value : 바뀌지않는 고정값이다. 자 이제 pointer(stack)가 heap.. 2022. 11. 18.
[c++][pointer, reference 정복 1] Memory Layout in C 오늘은 뭔가 서로서로 개념들이 연관되면서 하나의 퍼즐이 마춰져간다!! 이 감을 잊어버리기전에 정리정리. 포인터.. 레퍼런스 ... 결국 컴퓨터위에서 작동하는걸 이해하기 위해서 기본기가 중요했다. 메모리 레이아웃 정리부터 형상화해서 정리하기. 여기서 말하는 memory layout 은 memory 를 사용하는 모든 장치들에 통용되는것! ex) RAM , ROM.. 1. text segment: The text segment is also known as the code segment. When we compile any program, it creates an executable file like a.out, .exe, etc., that gets stored in the text or code secti.. 2022. 11. 16.