怎么给vector<string,int>赋值
时间: 2023-06-09 14:04:01 浏览: 164
要给 vector<string,int> 赋值,可以使用 push_back 函数将元素一个一个地添加到 vector 中,也可以使用 std::initializer_list 初始化器列表。例如:
```
#include <vector>
#include <string>
int main()
{
std::vector<std::pair<std::string, int>> vec;
// 方法一:使用 push_back 函数添加元素
vec.push_back(std::make_pair("hello", 1));
vec.push_back(std::make_pair("world", 2));
// 方法二:使用 std::initializer_list 初始化器列表
vec = {{"apple", 3}, {"banana", 4}};
return 0;
}
```
这里使用了 std::pair 类型表示字符串和整数的键值对,使用 std::make_pair 函数将两个值组合成一个键值对。
相关问题
判断vector对象的定义是否正确,并描述其执行结果 vector<vector<int>> ivec; vector<string> svec = ivec; vector<string> svec(10,“null”);
这里有三个vector对象的定义和描述结果:
1. `vector<vector<int>> ivec;` 这是正确的vector对象的定义。它创建了一个名为`ivec`的向量,其中每个元素也是一个向量,元素的类型是int。执行结果是创建了一个空的二维向量。
2. `vector<string> svec = ivec;` 这个定义是错误的,因为不能将一个二维向量赋值给一个一维向量。执行此代码会导致编译错误。
3. `vector<string> svec(10,"null");` 这是正确的vector对象的定义。它创建了一个名为`svec`的向量,其中包含10个元素,每个元素都是字符串类型,并且初始值都为"null"。执行结果是创建了一个包含10个字符串元素的向量,每个元素初始化为"null"。
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` 容器。
阅读全文