使用vector <int> :: size_type和普通整数有什么区别?

asi*_*med 4 c++ stl vector

我是c ++ stl语言的初学者.我想知道这两个代码之间的区别.我问我的朋友,但他说两者都是一样的.可以任何人解释这两个是否相同.并解释为什么这些是不同的

#include <iostream>
#include <vector>
using namespace std;
int main(){
    vector<double> student_marks(20);
    for (vector<double>::size_type i = 0; i < 20; i++){
        cout << "Enter marks for student #" << i+1
             << ": " << flush;
        cin >> student_marks[i];
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

#include<iostream>
#include<vector>
using namespace std;
int main(){
    vector<double> student_marks(20);
    for (int i = 0; i < 20; i++)
    {
        cout << "Enter marks for student #" << i+1
             << ": " << flush;
        cin >> student_marks[i];
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Pra*_*han 6

vector<T>::size_type是一种依赖于实现的类型,通常是size_t.由于它没有由标准指定并且可能会发生变化,因此在处理该类型的元素时,您应该更喜欢使用它.例如,vector<T>::size()返回的类型a vector<T>::size_type.因此,如果要vector使用整数索引进行迭代,则需要此索引为类型vector<T>::size_type.这将确保您的代码易于维护 - 如果您决定使用标准库的不同实现,则代码将保持一致.