프로그래밍/C++
[UtilitiesLibrary] std::size_t - with unsigned int
Changun An
2023. 4. 27. 00:51
반응형
- 모든 유형의 객체의 최대 크기를 저장 할 수 있는 타입.
- sizeof의 반환 형태.
- 크기를 표현 할 수 없는 것은 저장 할 수 없음.
- 부호 없는 정수형
unsigned int와 공통점은 부호 없는 정수형이며 다른점은 아래와 같다.
std::size_t
- 크기를 나타내는 타입(구현 형태에 따라 달라짐)
- 메모리 범위의 크기를 바이트 단위로 표현할 수 있는 부호 없는 정수
- 시스템에 최대 크기의 메모리 블록
unsigned int
- 4바이트 크기(32 비트 아키텍처 기준)
- 효율적 수행
헤더 파일
* std::size_t를 사용하기 위해서는 밑에 헤더 중 하나를 사용하면 됨.
#include<cstddef>
#include<cstdio>
#include<cstdlib>
#include<cstinrg>
#include<ctime>
#include<cwchar>
#include<cuchar> // C++17 support
Test Code
#include <cstring>
#include <iostream>
#include <array>
class A {
private :
int num_;
std::string name_;
double val_;
};
template<class T>
class B {
private :
T t1;
T t2;
};
class D : public A, public B<int>{
private :
A a;
B b;
};
class C : public B<int> {
private :
B b;
};
int main(){
std::array<std::size_t, 10 > a;
for (auto i = 0; i != a.size(); ++i) {
std::cout << (a[i] = i) << ' ';
}
std::cout << '\n';
for (std::size_t i = a.size(); i--; ) {
std::cout << a[i] << ' ';
}
std::cout << '\n';
std::size_t b = sizeof(a);
std::cout << "array : " << b << '\n';
std::size_t str = sizeof(std::string);
std::cout << "string : " << str << '\n';
std::size_t c_a = sizeof(A);
std::cout << "class_A : " << c_a << '\n';
std::size_t c_b = sizeof(B<int>);
std::cout << "class_B : " << c_b << '\n';
std::size_t c_c = sizeof(C);
std::cout << "class_C : " << c_c << '\n';
std::size_t c_d= sizeof(D);
std::cout << "class_D : " << c_d << '\n';
return 0;
}
Reference Site :
https://en.cppreference.com/w/
cppreference.com
Null-terminated strings: byte − multibyte − wide
en.cppreference.com
반응형