본문 바로가기

전체 글20

JAVA 기본문법 초스피드 (c,c++과 비교) 전역 변수, 전역 함수를 만들 수 없음. 즉 모든 객체는 클래스 안에 존재해야한다. 파일 하나당 public class 한개만 존재해야 한다. (내포 클레스의 경우 예외) package = namespace 의 개념과 비슷 모든 .java 파일에는 java.lang.* 가 자동으로 import 된다. 고로 바로 System 클래스의 기능 사용가능 (java.lang = 기본 패키지) 자바에도 printf 함수가 있음 ( System.out.printf() ) import = include --- java 명령어 --- 컴파일 명령어 => javac -d 실행 명령어 => java -classpath 자바는 char 을 제외한 모든 자료형이 signed 형이다 자바의 String 은 일단 초기화 되면 값 .. 2022. 4. 27.
tuple 과 vector 의 차이 vector 는 보통 같은 자료형의 묶음을, tuple 은 서로 다른 자료형들을 묶을때 흔히 C++ 에서 vector 자료형이 vector 인 이유. 2022. 4. 20.
이진탐색과 이진탐색트리 이진탐색 (꼭 트리구조에서만 사용가능한 것이 아님) => 데이터가 "정렬로" 나열있을때 찾는 데이터를 찾기위해 데이터를 반반씩 쪼개며 찾는 방식을말함. ex) 1에서 100 사이에 데이터 40을 찾기위해 1과 100 사이의 50을 기준으로 데이터를 찾아나감. 속도가 logN 이므로 찾는 데이터의 크기가 클 수록 효율이 매우 높아짐. - 오로지 정렬되어있는 데이터에만 적용이 가능 이진탐색트리 - 이진탐색을 사용 할 수 있게 고안된 이진트리 즉 이진탐색을 쓸 수있는 트리구조 - 데이터 입력시 logN 속도. (vector, list 는 N 속도) => 속도 비교표 O(1) => O(logN) => O(N) - 탐색 효율도 logN 속도. (vector, list 는 1 속도) - 트리의 모양 밸런스가 유지되.. 2022. 3. 4.
연산자 오버로딩의 3가지 형태 3가지 구현중 1가지만 있으면 된다. using namespace std; //산술 연산자 오버로딩 class Cents { int m_value; public: Cents(const int& value) { m_value = value; } const int& getValue() const { return m_value; } const void setValue(const int& value) { m_value = value; } // 1. Cents 의 매개함수의 형태 int operator +(const Cents& c2) { return Cents(this->m_value + c2.m_value).getValue(); } // 2. Cetnts 내부에 있지만 friend 로 인해 외부함수나 다름없는.. 2021. 11. 25.
헷갈리기쉬운 reference, const !!!!!!!!!!! 아래 코드는 const 와 reference 를 최대한 많이 때려박은 코드임. 최대한 때려박을수록 좋다 using namespace std; //산술 연산자 오버로딩 class Cents { int m_value; // private 로 선언된 클래스 멤버변수 public: Cents(const int& value) // 1. { m_value = value; } const int& getValue() const // 2. { return m_value; } void setValue(const int& value) { m_value = value; } /*int getValue() const { return m_value; }*/ }; int add(const Cents& c1,const Cents& c.. 2021. 11. 25.
WHAT IS THE FRIEND? doSomething 에서 각각의 a, b 객체의 멤버 변수에 접근을 시도하려고 하는데 에러뜬다. 왜? 클래스 내부에서 private 로 선언되어있기 때문. 해결방법 : 각각의 클래스에 doSomething의 이름에 friend를 붙인 놈을 넣는다. (의미 : void 함수 doSomething(A& a, B& b) => 이놈은 나의 친구다) 코드 실행순서 => doSomething(a, b) 실행 -> a.m_value 찾아가기 -> a.m_value가 있는 class A로 들어가기 -> 원칙상 private 로 선언되있는 m_value에 접근할수 없지만 doSomething이 친구라고 선언해놓음.(그니까 친구니까 특별하게 접근 허용을 해주는거임) -> ㅇㅋ 하고, friend void doSometh.. 2021. 11. 25.