[1장] 헬로 월드 코딩 세상! 시작은 이곳에서!

시작은 언제나 헬로 월드 코딩으로, 첫 글에서는 Visual Studio Code와 C++ 확장 기능을 이용해 이 간단한 코드가 어떻게 여러분을 프로그래밍의 세계로 안내하는지 보여드리겠습니다. C++로 작성된 이 예제는 메시지 벡터를 순회하며 단어들을 출력합니다.

▶▶세팅을 위한 기초가 필요하신 분들은 “Microsoft C++용 VS Code 구성” 글을 참고 하시기 바랍니다.

클릭하시면 확대된 이미지를 확인하실 수 있습니다.

1. 헬로 월드 코딩은 너무 유명해!!!

그러면 우리가 작성해볼 헬로 월드 코딩을 구경해 볼가요?

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}
  1. #include 지시문은 프로그램에 필요한 헤더 파일을 포함시킵니다. 여기서는 입출력 관련 기능을 위한 <iostream>과, 벡터 컨테이너를 위한 <vector>, 그리고 문자열 사용을 위한 <string> 헤더 파일을 포함시키고 있습니다.
  2. using namespace std;는 표준 라이브러리의 모든 요소를 기본 네임스페이스로 설정합니다.
  3. main() 함수는 프로그램의 진입점으로, 실행 시 가장 먼저 호출되는 함수입니다.
  4. vector<string> msg {...};string 객체들의 벡터를 초기화합니다. 이 경우 “Hello”, “C++”, “World”, “from”, “VS Code”, “and the C++ extension!”라는 문자열들로 초기화됩니다.
  5. 벡터 msg에 대한 범위 기반 for 루프는 각 wordcout을 통해 출력하고, 각 단어 뒤에 공백을 추가합니다.
  6. 마지막으로 cout << endl;은 줄바꿈을 출력하여, 모든 단어가 한 줄에 출력된 후 다음 줄로 커서를 이동시킵니다.

2. 헬로 월드 코딩using namespace std;

using namespace std;는 C++ 프로그램에서 std 네임스페이스에 정의된 모든 요소(함수, 객체, 변수 등)에 대해 네임스페이스 접두사(std::)를 생략할 수 있게 해주는 선언문입니다. 예를 들어, std::cout 대신 cout을 직접 사용할 수 있게 됩니다. 이는 코드를 좀 더 간결하게 작성할 수 있게 해주지만, 큰 프로젝트에서는 다른 라이브러리와의 이름 충돌 가능성 때문에 피하는 것이 좋습니다.

3. vector<>은 무엇?


vector<>
는 C++ 표준 템플릿 라이브러리(STL)의 일부로, 동적 배열 기능을 제공하는 컨테이너 클래스입니다. vector<>는 꺾쇠괄호 안에 타입을 지정하여 사용하며, 이를 통해 해당 타입의 객체들을 순차적으로 저장할 수 있습니다. 예를 들어, vector<int>int 타입의 동적 배열을 생성하고, vector<string>string 객체들을 저장합니다.

vector는 자동으로 메모리를 관리해주며, 요소를 추가하거나 제거할 때 자동으로 크기를 조정합니다. 배열과 비교했을 때 vector는 크기가 고정되어 있지 않고, 필요에 따라 동적으로 확장되거나 축소될 수 있습니다. 이는 push_back(), pop_back(), resize(), clear() 등의 멤버 함수를 통해 구현됩니다.

vector는 또한 임의 접근 반복자(random-access iterators)를 제공하므로, 배열처럼 인덱스를 사용한 직접 접근이 가능하며, begin()end() 멤버 함수를 사용하여 범위 기반의 for 루프나 알고리즘과 함께 사용될 수 있습니다.

4. printf와 std::cout의 차이점은?


printf
std::cout는 C++에서 출력을 처리하는 두 가지 다른 방법입니다:

  • printf는 C 언어에서 유래된 함수로, 포맷 스트링을 사용하여 다양한 데이터 타입을 서식화하여 출력합니다. 사용법은 더 복잡할 수 있으며, 타입 안전이 보장되지 않습니다.
  • std::cout은 C++의 표준 입출력 스트림 라이브러리의 일부로, 오버로딩된 << 연산자를 사용하여 타입 안전성을 제공하고, 객체 지향적인 방법으로 출력을 제공합니다.

std::cout는 타입 안전성과 사용의 편리함 때문에 C++에서 권장되는 방식입니다. 반면 printf는 레거시 코드나 특정 포맷팅 요구사항이 있는 경우에 여전히 사용됩니다.

부록. 빌드에 문제를 격게되면!

혹시나 Visual Studio Code의 오른쪽 아래에 다음과 같은 오류를 만나면↓

cl.exe라고 하는 것의 설정을 완료해야 합니다. Visual Studio 2022용 빌드 도구 다운로드받아서 설치해야 합니다. ↓

Microsoft C++용 VS Code 구성을 찬찬히 따라가보세요! 해답이 있습니다.

Leave a Comment