为什么std::string方法的风格与STL的其他部分不同?
Is there a reason that std::string methods have a diffrent style than rest of STL
我一直想知道为什么字符串方法与其他容器的方法不同,例如std::map…我的意思是这样的一个例子:
size_t find (char c, size_t pos = 0) const
注意,返回值不是迭代器。那么为什么std::string是这样的,除了明显的:委员会做了一个bug之外,string是坏的,有什么"合法"的原因吗?
顺便说一句,我知道有些人不认为字符串是STL的一部分,你可以假装我问为什么字符串不同于std中的容器?可以。
因为std::string不是容器,而这些操作是常用的。
你可以把它看作是容器的专门化。std::vector<char>
。为特定用途而设计的并提供了对该类型和用法有用的方法。
这样想,为什么还有std::string
?为什么不使用std::vector<char>
当你想要表示字符串?方便简单的。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 在C应用程序中运行C++(带有STL)函数
- 使用2个键的cpp-stl::优先级队列排序不正确
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 在其他文件中创建类时在 c++ 项目中不起作用
- 成员函数不能为集合迭代器和const_iterator的输入重载(但可以为其他 STL 迭代器重载)
- 未签名的char数组到stl ::映射或其他容器中的键
- Cython 带 STL 矢量和没有 NumPy 可以从其他应用程序调用,缺少什么?
- 对stl字符串和其他容器进行加密和序列化
- C++ 将部分数组(在某些偏移量)转换为其他类型
- 除了默认分配器之外,stl现在还有其他分配器吗
- STL 容器由其他容器构造(例如,来自向量的列表)
- 为什么 const 不适用于 stl map 的 size(),而它非常适合其他容器
- c++:应用于向量的STL算法也适用于其他容器对象
- 为什么std::string方法的风格与STL的其他部分不同?