메모용(c++)

manmarru·2024년 1월 9일

c++

목록 보기
1/24

컨테이너의 길이 측정하기

  • size()
    매개변수 없음
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

cout <<numbers.size(); << endl; //출력값10

문자열 형식의 숫자를 숫자로 바꾸거나 연산하기

  • 0~9 숫자는 아스키 코드 상으로 차례대로 있어서 문자열 0으로 빼는 연산을 하면 본인의 숫자 자리를 찾아가겠군
string n("12345");
for (char i : n)
{
    cout << i << endl; //각 자리 숫자를 꺼내서 출력
    cout << i << "+ 1 =" << 1 + i - '0' << endl; 
    //각 자리 숫자를 숫자타입으로 바꾸고 연산 (한자리 숫자만 될듯)
}

선언타입 자동인식

auto 키워드는 변수의 타입을 컴파일러가 알아서 추론한다.
변수 선언문처럼 쓰면 된다.

auto Tmp1(1)
auto Tmp2("asdf")
cout << Tmp1 << Tmp2 << endl;
//1asdf

시간 헤더 ctime

ctime 공식 문서

  • time(NULL);
    1970.01.01 0시0분0초를 기준으로 현재까지 흐른 시간을 초 단위로 반환한다.
#include <ctime>

cout << time(NULL) << endl;
time_t today = time(NULL);
tm  ptm;

localtime_s(&ptm, &today);
cout << ptm.tm_year + 1900 << "년";
cout << ptm.tm_mon + 1 << "월";
cout << ptm.tm_mday << "일";
cout << ptm.tm_hour << "시";
cout << ptm.tm_min << "분";
cout << ptm.tm_sec << "초";
}

백준 오류나는 헤더

컴파일러에서는 되는데 백준에선 따로 불러줘야되는것들
<math>

  • pow 사용할때 불러줘야된다.

<memory.h>

  • memset을 사용하기 위해 필요하다

문자열 서식

  • %d : int타입
  • %c : char 타입
  • %s : char* 타입 문자열
  • %lf : double 타입 실수
  • %f : float 타입 실수

비트연산자

  • & : AND 연산자
  • | : OR 연산자
  • ^ : XOR 연산자 (둘중 하나면 1이면 1)
  • ~ : NOT 연산자
  • <<, >> : 비트 이동 연산자
  • NOR 연산은 !a && !b 이런식으로 해야될듯

컴파일러 파일 용량 줄이기

  • .vs 폴더 들어가서 파일명 폴더 들어가면 v17(컴파일러 버전)폴더 들어가면 있는 ipch 폴더, Browse.VC.db 폴더를 삭제
    얘내 둘은 어차피 빌드하면 다시 생긴다.
  • .vs폴더를 통째로 삭제하면 프로젝트 설정이 날아가니까 비추

양수 음수 여부 확인

  • signbit : 양수인지 음수인지 여부를 결정하는 비트의 첫 숫자만을 확인하기 때문에
    signbit(-1) 이 if (-1 < 0) 보다 빠르다

문자열이 숫자로 이루어졌는지 확인

  • isdigit(숫자 or 문자열)
  • (regex 인클루드) isAllDigits
    정수를 입력값으로 받는데, 사실은 char을 받아서 그걸 int로 인식하는거고, 그걸 아스키 코드상에서 0~9 사이의 값을 가지는지 확인하는거임

0개의 댓글