c++ - 使用 std::string::size_type 而不是 size_t 有什么好处吗?

标签 c++ stl size-type

我正在审查另一个开发人员的代码,其中包含以下内容:

std::string name;
...
std::string::size_type colon = name.find(":");

我认为使用 size_t会更容易理解并且同样安全,因为 STL 标准规定 std::stringstd::basic_string<char, std::allocator> , 和 std::allocator::size_typesize_t .

他希望确保 STL 标准永远不会改变,从而使该假设无效;如果标准可以改变,那么 size_type会比 size_t 更安全.

这会发生吗?还有其他使用原因吗 size_type而不是 size_t

最佳答案

size_type 应该用在基于容器类型的模板化代码中。当你一直在操作std::string的代码时,你可以直接使用size_t

关于c++ - 使用 std::string::size_type 而不是 size_t 有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10520058/

相关文章:

c++ - 应用程序崩溃 C++/MFC 的通用日志

c++ - 转换逻辑的目标是什么类型?

C++ 避免 vector <bool>实例化

c++ - 带有指针容器的自动类型推导

C++将字符串放入字符串 vector 结构中

c++ - 自上而下的伸展树(Splay Tree)的 makeEmpty() 的时间复杂度

c++ - 使用 `vector<A>::size_type ix` 索引 `vector<B>`

c++ - `size_t` 总是 `vector<int>::size_type` 或任何其他容器类型的别名吗?

c++ - 为什么 unique_lock 调用解锁,当他不拥有互斥量?

c++ - std::size_t 与 size_type 作为参数和函数返回类型