C++에서 std::는 C++ 표준 라이브러리에서 제공되는 이름공간(namespace)를 나타냅니다. std는 "standard"의 약자로, C++ 표준 라이브러리에 포함된 함수, 클래스, 객체 등을 그룹화한 네임스페이스입니다.
std::의 의미C++ 표준 라이브러리에서 제공되는 대부분의 기능(예: cout, vector, string 등)은 std라는 네임스페이스 안에 포함되어 있습니다.
따라서 std::를 붙여야 표준 라이브러리의 기능임을 명시할 수 있습니다.
std::coutcout은 C++에서 콘솔 출력에 사용되는 객체입니다.std 네임스페이스 안에 속해 있습니다.#include <iostream>int main() {
std::cout << "Hello, World!" << std::endl; // std::를 명시
return 0;
}std::를 사용하는 이유std::를 사용하면 명확히 표준 라이브러리의 것을 사용하는지 구분할 수 있습니다.namespace my_lib {
void cout() {
// 사용자 정의 함수
}
}
int main() {
my_lib::cout(); // 사용자 정의 함수 호출
std::cout << "Hello"; // 표준 라이브러리 호출
}std::를 붙임으로써 코드의 출처를 명확히 알 수 있습니다.std::를 생략하는 방법std::를 매번 쓰는 것이 번거로울 수 있습니다. 이를 생략하려면 using 키워드를 사용하여 네임스페이스를 명시적으로 선언할 수 있습니다.
#include <iostream>using std::cout; // cout만 std:: 없이 사용 가능
int main() {
cout << "Hello, World!" << std::endl; // endl은 여전히 std:: 필요
return 0;
}
#include <iostream>using namespace std; // std 네임스페이스 전체를 사용
int main() {
cout << "Hello, World!" << endl; // std:: 없이 사용 가능
return 0;
주의: using namespace std;를 사용하면 모든 std 멤버를 가져오므로 이름 충돌 위험이 커질 수 있습니다. 큰 프로젝트나 협업 환경에서는 권장되지 않습니다.
std:: 기능<iostream>)#include <iostream>int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
<vector>, <map>, 등)#include <vector>#include <iostream>int main() {
std::vector<int> numbers = {1, 2, 3};
for (const auto& num : numbers) {
std::cout << num << " ";
}
return 0;
}
<string>)#include <string>#include <iostream>int main() {
std::string name = "C++";
std::cout << "Language: " << name << std::endl;
return 0;
}
<algorithm>)#include <vector>#include <algorithm>#include <iostream>int main() {
std::vector<int> nums = {3, 1, 4, 1, 5};
std::sort(nums.begin(), nums.end()); // 정렬
for (const auto& num : nums) {
std::cout << num << " ";
}
return 0;
}
std::는 C++ 표준 라이브러리의 기능을 사용할 때 명시적으로 사용됩니다.using namespace std;를 사용하여 생략할 수 있으나, 이름 충돌 가능성이 있으므로 신중히 사용해야 합니다.