자료구조 | C++ | 기본 개념

2024. 3. 7. 15:12·개발/C++

개요

오늘부터 자료구조 수업에서 C++ 문법을 가르친다고 합니다.

C++을 해본적은 없지만 문법 생긴게 참 기괴한데 오늘 한 교시 동안 만들고 해설했던 코드 조각은 이랬습니다.

#include <iostream>
using namespace std;

int main() {
	char arr[100];
	cout << "What's your name" << endl;
	cin >> arr;
	cout << "Hi" << " " << arr;
}

입출력을 쉬프트 연산자 같은거로 처리한다는 것부터 광기로 가득찬 언어 아닙니까?

심지어 using을 안쓰면

#include <iostream>

int main() {
	char arr[100];
	std::cout << "What's your name\n" << std::endl;
	std::cin >> arr;
	std::cout << "Hi" << " " << arr;
}

일일히 콜론 2개씩 붙여줘야 합니다..

 

 


 

 

#include 문장을 없애면 어떤 오류가 발생하는가?

그래서 실제로 없애보았습니다.


#include는 언어 자체에서 보유중인 기능을 사용하기 위해서 라이브러리를 받아오는 것이라고 합니다.

C#으로 친다면 using이랑 일맥상통 하는 것 같습니다.

 

using iostream.std;

 

같은 느낌...

 

 


 

 

endl의 의미?

cout << "What's your name" << endl;

이런식으로 사용된 endl은 개행문자 입니다.

문자는 아니지만 아무튼 '\n' 과 똑같이 작동하고 '\n'보다 속도가 느립니다.

그 이유는 endl은 버퍼를 비워주는 작업까지 해주기 때문입니다.

 

 


 

 

자신의 이름과 소속을 출력하는 프로그램을 작성하라

솔직히 출력만 하면 되는게 너무 날먹이라고 생각돼서 입력 받은 걸 출력해주는 걸로 만들었습니다.

#include <iostream>
#include <string>
using namespace std;

int main() {
	string name;

	int lass;
	cout << "당신의 이름은? : ";
	cin >> name;
	cout << "당신의 소속은? : ";
	cin >> lass;

	cout << "당신의 이름은 " << name << "이고 당신은 " << lass << "반 입니다.";
}

 

몰랐는데 C++에선 string 자료형을 사용하기 위해선 또 string을 include 해야하는 이해할 수 없는 구조를 사용합니다.

 

아무튼 class 는 예약어라서 class가 아니라 lass가 돼버린 int 변수에 대해 애도를 표합니다.

 

 


 

 

이름 공간(namespace)는 무엇 때문에 필요한가?

위에서 말했듯 using namespace를 사용하지 않는다면 일일히 :: 를 붙여줘야 하는 수고로움이 발생합니다.

 

회사 같은 곳에서 큰 프로젝트를 하는 것을 대비해서 using을 사용하지 않는 습관을 들이는 것도 필요하다고 생각하지만 솔직히 귀찮으시잖아

 

소규모로 할때는 편한걸 기용합시다.

 

 


 

 

마치는 말

C++ 참 이상하네요.

그래도 매력적인 언어 같긴 합니다.

좋으니까 사람들이 많이 쓰는거겠죠?

 

근데 전 C++ 재능이 없는 것 같아요..

Hello World! 출력 하는 문제를 4번 시도한 후 드디어 맞춘걸 보면 재능이 없는게 확실합니다.

 

심지어 한번은 C++로 풀어놓고 C#으로 제출했네..

'개발 > C++' 카테고리의 다른 글

자료구조 | C++ | 클래스  (1) 2024.04.05
자료구조/게임 프로그래밍 | C++ | 함수, 포인터  (1) 2024.03.28
게임 프로그래밍 | C++ | 랜덤  (2) 2024.03.22
자료구조 | C++ | 문자열  (3) 2024.03.17
자료구조 | C++ | 기초사항  (3) 2024.03.06
'개발/C++' 카테고리의 다른 글
  • 자료구조/게임 프로그래밍 | C++ | 함수, 포인터
  • 게임 프로그래밍 | C++ | 랜덤
  • 자료구조 | C++ | 문자열
  • 자료구조 | C++ | 기초사항
SundG0162
SundG0162
블로그 프로필은 머핀입니다.
  • SundG0162
    게임개발고수가될거야
    SundG0162
  • 전체
    오늘
    어제
    • 분류 전체보기 (78)
      • 주저리 (3)
        • 잡담 (2)
        • 장현우 (0)
        • 회고록 (1)
      • 개발 (50)
        • CITADEL : 성채 (1)
        • HEXABEAT (1)
        • FRACTiLE (6)
        • UNNAMED (9)
        • Default Defense (10)
        • T-Engine (1)
        • Project EW (0)
        • 졸업작품 (0)
        • Unity (3)
        • C# (4)
        • C++ (13)
        • WinAPI (1)
        • 그 외 (0)
      • 알고리즘 (13)
        • C# (1)
        • C++ (12)
      • 자료구조 (2)
        • C++ (1)
        • C# (0)
        • 공용 (1)
      • 기타 (10)
        • 아트 (6)
        • AI (2)
        • 수학 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    AI
    LLM
    오블완
    코드트리
    유니티
    생성형ai
    코딩트리조별과제
    코딩
    티스토리챌린지
    코딩테스트
    C#
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
SundG0162
자료구조 | C++ | 기본 개념
상단으로

티스토리툴바