c++给map赋初值
时间: 2023-11-12 10:56:05 浏览: 114
给map赋初值有几种方法,以下是其中一种常用的方法:
```
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = {
{1, "apple"},
{2, "banana"},
{3, "orange"}
};
// 遍历map并输出键值对
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
这段代码将创建一个名为`myMap`的map对象,并使用初始化列表给其赋初值。初始化列表中的每一对花括号表示一个键值对,用逗号分隔。在这个例子中,map的键是整数类型,值是字符串类型。
输出结果:
```
1: apple
2: banana
3: orange
```
相关问题
c++ vector 如何赋初值
在C++中,`std::vector` 是一个动态数组,用于存储同类型的数据。你可以通过多种方式为 `vector` 赋初值,这里列出一些常见的方法:
1. **空初始化**:
```cpp
std::vector<int> vec; // 创建一个空的vector,其大小默认为0
```
2. **使用初始大小并指定元素**:
```cpp
std::vector<int> vec(5); // 创建一个包含5个默认值(通常是零)的int向量
vec = {1, 2, 3, 4, 5}; // 或者直接初始化为特定值
```
3. **使用构造函数和迭代器**:
```cpp
std::vector<int> vec({6, 7, 8, 9, 10}); // 使用括号列表创建
```
4. **使用范围-based for循环填充**:
```cpp
std::vector<int> vec;
for (int i = 0; i < 10; ++i) {
vec.push_back(i);
}
```
5. **使用`reserve()`方法预分配空间**:
```cpp
std::vector<int> vec;
vec.reserve(10); // 预先分配10个位置,后续添加不会触发扩容
for (int i = 0; i < 10; ++i) {
vec.push_back(i);
}
```
每个方法的具体用法取决于你的需求和代码风格。如果你需要了解更多关于 `vector` 的操作,如如何访问元素、修改元素等,请告诉我,我会给出更多详细信息。
unordered_map赋初值
在C++中,可以使用花括号初始化列表来为`unordered_map`赋初值。以下是一个示例代码:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
// 使用花括号初始化列表赋初值
std::unordered_map<std::string, int> myMap = {
{"apple", 5},
{"banana", 3},
{"orange", 2}
};
// 遍历并打印unordered_map中的键值对
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
运行上述代码,输出将是:
```
banana: 3
orange: 2
apple: 5
```
在初始化列表中,键和值之间使用冒号分隔,键值对之间使用逗号分隔。这样可以为`unordered_map`提供初始键值对。
阅读全文