如何查询网站注册信息,遵义广告公司网站建设,用什么软件做动漫视频网站好,济南本地网站建设从这篇博客开始#xff0c;我们的C部分就进入到了STL#xff0c;STL的出现可以说是C发展历史上非常关键的一步#xff0c;自此C和C语言有了较为明显的差别。那么什么是STL呢#xff1f; 后来不断的演化#xff0c;发展成了知名的两个版本#xff0c;一个叫做P.J.版本我们的C部分就进入到了STLSTL的出现可以说是C发展历史上非常关键的一步自此C和C语言有了较为明显的差别。那么什么是STL呢 后来不断的演化发展成了知名的两个版本一个叫做P.J.版本我们的VS系列就是用的这个版本还有一个叫做SGI版本我们的Linux上的G就是用的这个版本。 STL大类分为六个板块 下面我们先看一下string它是STL中的一个类它需要包含头文件
#include string我们可以看到string是类模板实例化出来的一个类下面我们来看一下他的基本用法 这是他的构造函数我们来看一些实际的例子就懂了下边打印的话也可以用流插入包括赋值运算符因为它们都是有运算符重载的
#include iostream
#includestring
using namespace std;
int main() {string s1;string s2(hello world);string s3 s2;string s4(s2);cout s1 endl;cout s2 endl;cout s3 endl;cout s4 endl;return 0;
}除此之外还有下面的一些不怎么常用的 总之我们都可以在文档当中找到它们的定义我用的是下面这个网站 链接string 当我们想访问string中的元素的时候我们可以用下标访问因为它实现了对[ ]的重载
int main() {string s abcdefgh;for (int i 0; i s.size(); i) {cout s[i] ;//cout s.operator[](i) ;下边是上边的等效}return 0;
}这样我们不仅可以访问也可以改变对象中的值 我们这里的size指的是有效字符的长度是不算’\0’的当然我们如果不想改变也可以我们可以看到库中是由const版本的 我传const对象就修改不了了 当然另一种遍历或者访问的方式就是用迭代器基本用法如下
int main() {string s abcdefg;string::iterator it s.begin();while (it ! s.end()) {cout *it ;it;}return 0;
}这个也是实现的打印功能这个iterator就是迭代器它前边要加类域因为它是一个内部类要指明外部类是什么这里的s.end()指的是字符串末尾字符的下一个位置也就是’\0’的位置 其实我们这里的begin和end也是有const版本的const对象是去调用const版本的
int main() {const string s abcdefg;string::const_iterator it s.begin();while (it ! s.end()) {cout *it ;it;}return 0;
}我们这里为什么是const_iterator呢而不是const iterator因为前者指的是指向的对象*it不能修改而后面指的是it它本身不能修改 除此之外我们的库中还给了swap和reverse交换和逆置函数 这也是模板函数可以适用于不同的类型 这里的reverse也是要传迭代器的要传左闭右开的迭代器 迭代器还有一个让人方便的地方那就是范围for了范围for本质上就是迭代器 就是定义一个e每次从s中取然后打印