c++ - 既然有了size_t,那么 size_type意义何在?
伊谢尔伦
伊谢尔伦 2017-04-17 12:05:53
0
1
610
#include <vector>
#include <string>
using namespace std;
int main()
{
    vector<int>::size_type a;
    vector<double>::size_type b;
    string::size_type c;
}

我在vs2015内把鼠标指针分别指向a,b,c,都是显示为size_t类型,那么既然有了size_t,为何还要size_type呢,而且还分别有这么多作用域下的size_type?说的不都是一回事么

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(1)
小葫芦

現在玩程式設計都講究移植性的問題。
size_t在32位元和64位元系統上是不一樣的,size_t是方便系統之間的方便移植。
只能用一句話,使用size_type永遠是正確的。

 typedef size_t size_type;

是不是覺得沒差別?
size_type是配套類型(STL類別中定義的),其實他就是一個unsigned int型的,說來說去只是為了string類別和vector類別物件的長度的一個儲存而存在的。

 sizeof(vector<int>::size_type) 
 sizeof(string::size_type)  
 sizeof(size_t) 

你可以試試sizeof的結果。

再來看看include

size_t定義:

#include <cstddef>

size_type定義:

#include <vector>
//或
#include <string>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板