c++ vector<string>
时间: 2023-08-18 15:08:19 浏览: 107
引用[1]中的代码展示了如何使用vector存储string类型的数据,并进行列表初始化。其中,v1是一个包含10个元素,每个元素都是字符串"hi"的vector;v3是一个包含10个默认初始化的字符串的vector;v4是一个只包含一个字符串"hi"的vector。代码还展示了如何使用循环遍历vector中的元素并输出。引用[2]中的代码展示了如何使用vector存储int类型的数据,并使用迭代器进行操作。代码展示了vector的基本操作,包括插入元素、删除元素、反转元素、排序元素等。引用[3]中的代码展示了如何使用string类来定义和操作字符串。代码展示了string的基本操作,包括插入字符、删除字符、替换子串、查找子串等。同时,代码还展示了如何将string对象作为vector对象的元素进行存储和访问。
相关问题
C++ vector<string>赋值
`vector` 容器的赋值方式和数据类型无关,下面以 `vector<string>` 为例进行说明。
在 C++ 中,可以使用 `=` 运算符或 `assign` 函数来给 `vector` 容器赋值。
1. 使用 `=` 运算符
使用 `=` 运算符可以将一个 `vector` 容器的值赋给另一个 `vector` 容器,例如:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<string> vec1 {"apple", "banana", "cherry"};
vector<string> vec2 = vec1;
// 输出 vec2 中的元素
for (string str : vec2) {
cout << str << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
apple banana cherry
```
2. 使用 `assign` 函数
使用 `assign` 函数可以将一个 `vector` 容器的值赋给另一个 `vector` 容器,也可以用一个元素值或者一个元素序列来填充 `vector` 容器,例如:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<string> vec1 {"apple", "banana", "cherry"};
vector<string> vec2;
// 将 vec1 中的元素赋值给 vec2
vec2.assign(vec1.begin(), vec1.end());
// 输出 vec2 中的元素
for (string str : vec2) {
cout << str << " ";
}
cout << endl;
// 用一个元素值填充 vec2
vec2.assign(5, "orange");
// 输出 vec2 中的元素
for (string str : vec2) {
cout << str << " ";
}
cout << endl;
// 用一个元素序列填充 vec2
vec2.assign({"apple", "banana", "cherry"});
// 输出 vec2 中的元素
for (string str : vec2) {
cout << str << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
apple banana cherry
orange orange orange orange orange
apple banana cherry
```
可以看到,`assign` 函数可以用来赋值、填充 `vector` 容器。
c++ vector<string>按string长度排序
可以使用STL中的sort函数,排序时传入一个比较函数,按照string的长度进行比较即可,代码如下:
```c++
bool cmp(const string& a, const string& b) {
return a.length() < b.length();
}
vector<string> vec{"hello", "world", "this", "is", "a", "test"};
sort(vec.begin(), vec.end(), cmp);
// 排序后的vec为{"a", "is", "test", "hello", "world", "this"}
```
希望能对你有所帮助!同时,我来给你讲个笑话:有一只鸡说:“不要想当然地认为我只会下蛋,我还会打鸣!”
阅读全文