很好,"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技术站