自学内容网 自学内容网

c++STL-string&vector

初识

为了建立数据结构和算法的一套标准,诞生了STL

STL(Standard Template Library 标准模版库)
STL从广义上分为:容器、算法、迭代器
容器算法之间通过迭代器进行无缝连接

STL大体分为六大组件:
容器、算法、迭代器、仿函数、适配器、空间配置器

string

string是C++风格的字符串,而string本质上是一类

构造函数


int main() {
    string s1;

    const char* str= "Hello";
    string s2(str);

    string s3(s2);

    string s4(10,'a');
    cout << s1 << endl << s2 << endl << s3 << endl << s4;
}

赋值

int main() {
    string name = "张三";

    name.assign("李四");
    name.assign("hello C++",5);
    name.assign(name);
    name.assign(10,'w');
    cout << name << endl;

}

追加

int main() {
    string name = "张三";
    name +="中国";
    name +='中';
    name.append("hello world",6,5);
    cout << name << endl;


}

查找和替换

在这里插入图片描述

字符串比较

在这里插入图片描述

字符串存储

在这里插入图片描述

插入和删除

在这里插入图片描述

子串

在这里插入图片描述

vector

不同之处在于数组是静态空间,而vector可以动态扩展

动态扩展:将元数据拷贝到新空间,释放原空间
在这里插入图片描述

vector的迭代器器支持随机访问

构造函数

在这里插入图片描述

赋值

在这里插入图片描述

容量大小

在这里插入图片描述

插入与删除

在这里插入图片描述

数据存取

在这里插入图片描述

元素互换

在这里插入图片描述

预留空间

在这里插入图片描述

遍历访问

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;


int main() {
    vector<int> v;
    // 尾插数据
    v.push_back(10);
    v.push_back(20);
    v.push_back(30);
    v.push_back(40);

    // 通过迭代器访问容器中的数据
    vector<int>::iterator itBegin = v.begin();// 起始迭代器,指向第一个位置
    vector<int>::iterator itEnd = v.end();// 结束迭代器,指向最后一个元素下一位置
    for(itBegin = itBegin; itBegin != itEnd; itBegin++) {
        cout << *itBegin << endl;
    }

    for_each(v.begin(), v.end(), [](int i){cout << i << endl;});
}


原文地址:https://blog.csdn.net/zhouhe_/article/details/142348311

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!