c++中string和vector的详细介绍

yizhihongxing

很好,"C++中string和vector的详细介绍"是一个重要的话题,我很乐意为你提供完整的攻略。

1. 概述

1.1 string

string 是 C++ STL 中的一个标准库,它用于处理字符串。string 和 C 语言中的字符串类型 char* 相似,但是具有更多的操作和特定属性,比如它们是可以动态增长的。

C++中的string定义方式如下:

#include <string>
using namespace std;
string str = "Hello World";

string 还支持许多方便的方法,如 size()empty()find() 等等。

1.2 vector

vector 是 C++ STL 中的一个标准库,它用于表示和处理动态数组。它可以动态增长,保持存储顺序,并支持许多方便的方法,如 size()empty()push_back() 等等。在许多场景下,它被广泛用于代替原始的 C++ 数组。

C++中的vector定义方式如下:

#include <vector>
using namespace std;
vector<int>v;

2. string 的使用

2.1 定义和初始化

如上所述,定义和初始化 string 最简单的方法是如下:

#include <string>
using namespace std;
string str = "Hello World";

这将创建一个字符串 Hello World 并将其赋给变量 str

还可以通过调用默认构造函数来创建一个空字符串,如下:

string str;

如果你需要多次操作字符串,而不想重新创建每一个新的字符串,clear() 方法可以用于清空现有字符串。

string str = "Hello";
str.clear();

2.2 获取字符串的长度

使用 size() 方法获取字符串的长度。

string str = "Hello World";
int len = str.size();

2.3 连接字符串

使用加号 + 可以将两个字符串连接起来。

string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2; // 拼接 str1 和 str2

2.4 比较字符串

可以使用 compare() 函数来比较两个字符串,它返回一个整数,指示两个字符串的关系。

  • 当两个字符串相等时,返回值为 0。
  • 当第一个字符串小于第二个字符串时,返回值为负数。
  • 当第一个字符串大于第二个字符串时,返回值为正数。
string str1 = "Hello";
string str2 = "World";
if(str1.compare(str2) == 0 ) {
    cout << "Strings are equal" << endl;
}
else {
    cout << "Strings are not equal" << endl;
}

2.5 查找和替换字符串

可以使用 find() 函数来查找特定的子字符串,并使用 replace() 函数来替换特定的子字符串。

string str = "Hello World";
int index = str.find("World"); // 查找 World 字符串位置
string new_str = str.replace(index, 5, "Universe"); //替换 World 字符串到 Universe 字符串

3. vector 的使用

3.1 定义和初始化

如上所述,定义和初始化 vector 最简单的方法是如下:

#include <vector>
using namespace std;
vector<int> v{1, 2, 3};

这将创建一个 vector,包含 1,2 和 3。

还可以通过调用默认构造函数来创建一个空向量,如下:

vector<int>v;

创建一个大小为 n 的向量,并给所有元素赋值为匹配类型的默认值

vector<int>v(n);

3.2 获取向量的长度

使用 size() 方法获取 vector 的长度。

vector<int> v{1, 2, 3};
int len = v.size();

3.3 向向量末尾添加元素

由于 vector 是一种可变长度的数据结构,所以轻松添加和删除元素是它的主要优势之一。使用 push_back() 函数向 vector 的末尾添加元素。

vector<int> v{1, 2, 3};
v.push_back(4); // 将值 4 添加到 v 的末尾

3.4 删除最后一个元素

要从 vector 中删除最后一个元素,可以使用 pop_back() 函数。

vector<int> v{1, 2, 3};
v.pop_back(); // 删除 v 的最后一个元素,即 3

3.5 访问向量元素

像数组一样,vector 也可以通过数字索引来访问其元素。

vector<int> v{1, 2, 3};
int first_element = v[0]; // 访问第一个元素

除了使用数字索引,还可以使用 at() 函数来访问 vector 的元素。与使用数字索引的方式不同,如果尝试访问 vector 的超出范围的元素,at() 将引发一个 out_of_range 错误,这可以使程序更加健壮。

vector<int> v{1, 2, 3};
int third_element = v.at(2); // 访问第三个元素

4. 示例

下面是一些使用 C++ string 和 vector 的示例。

4.1 C++ string 示例

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str1 = "Hello";
    string str2 = ", World!";
    string str3 = str1 + str2;
    cout << str3 << endl;
    cout << "Length of the string is:" << str3.size() << endl;
    return 0;
}

在这个例子中,我们把两个 string 连接成一个,然后显示它的长度。

4.2 C++ vector 示例

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

int main() {
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    for(int i = 0; i < v.size(); i++) {
        cout << v[i] << " ";
    }
    return 0;
}

在这个例子中,我们先创建一个空的 vector,然后将值 1,2 和 3 添加到向量中,在 for 循环中遍历向量,并将每个值打印出来。

好的,希望这份攻略对你有帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中string和vector的详细介绍 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言 保留字

    C语言保留字的使用攻略 在C语言中,保留字是指被C语言编译器预先定义并且有特定含义的关键字。C语言中共有32个关键字,这32个关键字在程序中不能被用作变量名或其他标识符名称。本文将详细介绍C语言中保留字的使用方法。 如何使用C语言的保留字 C语言中的保留字使用非常简单,只需要直接使用即可。以下是一些常见的保留字: auto break case char c…

    C 2023年5月9日
    00
  • C语言 按值函数调用

    C语言 按值函数调用 在 C 语言中,函数可以按值调用(也称为传值调用)或按引用调用(也称为传引用调用)。 按值调用函数时,函数会使用参数的值进行计算,并在函数中对其进行修改不会影响原始值。 下面是一个按值调用的例子: #include <stdio.h> // 定义一个函数,输入两个整数并返回它们的和 int add(int a, int b)…

    C 2023年5月9日
    00
  • C++算法学习之贪心算法的应用

    C++算法学习之贪心算法的应用 算法简介 贪心算法是一种算法思想,指的是在求解问题时,总是做出当前看来最优的选择,也就是说在每一步中都选择最优解,最终得到全局最优解。 贪心算法的优点在于其简单易懂、运行效率高等特点。但是,由于贪心算法对于求解问题的约束条件和目标函数的要求过高,导致其只能解决部分问题,无法求解所有NP问题。一般情况下,合理的贪心策略是求解问题…

    C 2023年5月22日
    00
  • 华为Mate 8怎么样 华为Mate8全面评测图解

    华为Mate 8怎么样 华为Mate8全面评测图解 华为Mate 8是华为公司于2015年11月发布的一款大屏旗舰手机。其拥有6英寸的大屏幕、高通骁龙810处理器、4GB RAM、16/32/64GB ROM等高端配置,备受市场关注。下面我们来对这款手机进行全面评测,看看它在各方面的表现如何。 设计和外观 华为Mate8采用了一块6英寸的IPS LCD屏幕,…

    C 2023年5月22日
    00
  • C++用函数对算法性能进行测试

    下面是我对于“C++用函数对算法性能进行测试”的完整攻略: 1. 为什么要测试算法性能? 在进行算法设计的过程中,我们需要考虑算法的正确性和效率。算法的正确性很容易通过测试样例来验证,但是效率比较难以直接衡量。因此,我们需要对算法的性能进行测试,以便更全面地评估算法的优劣。 2. 性能测试的方法和工具 在进行性能测试之前,我们需要知道如何来测试算法的性能。下…

    C 2023年5月23日
    00
  • C语言深入探究程序的编译之预处理

    关于C语言深入探究程序的编译之预处理,我可以为您提供一份详细的攻略。如下所示: C语言深入探究程序的编译之预处理 什么是预处理 在C语言中,预处理就是一个在编译过程中的特殊阶段,它会在实际的编译之前,对源代码进行一些列的宏替换、条件编译、头文件包含等操作,以生成最终的源代码,供编译器进行编译。 预处理的过程 预处理的过程大致可以分为以下步骤: 删除所有的注释…

    C 2023年5月30日
    00
  • C++的继承特性你了解吗

    当涉及到面向对象编程时,C++的继承特性是必不可少的一部分。在这篇攻略中,我们将深入探讨这种特性以及如何在C++中使用它。 什么是C++的继承特性? 在C++中,继承是一种机制,让我们可以从一个已经存在的类中创建出一个新类。新类会拥有旧类的所有属性和行为,并且可以增加一些新的自定义成员。这是一种非常有用的机制,因为它让我们可以构建出更为复杂的系统,同时保持代…

    C 2023年5月22日
    00
  • C 标准库 locale.h

    locale.h 是C标准库中的一个头文件,它提供了本地化对字符串、格式等的处理支持。本文将介绍 locale.h 的完整使用攻略。 1. 包含头文件 使用 locale.h 需要先包含这个头文件。在代码中可以直接使用如下语句来包含: #include <locale.h> 2. 设置本地化环境 locale.h 为我们提供了setlocale(…

    C 2023年5月10日
    00
合作推广
合作推广
分享本页
返回顶部