在C 中,对Pair类STL的用途是什么,就像数据类型或容器一样
What is the use of pair class stl in c++ , is it like a data type or a container?
我基本上想知道我们可以在哪个领域使用Pair stl,我们如何迭代对stl。这是我试图通过一对迭代的简短代码,但这是错误的。
int main()
{
pair<int,int>a;
a=make_pair(1,22);
a=make_pair(2,33);
a=make_pair(3,44);
for(pair<int,int>::iterator i:a)
{
cout<<a.first<<"-->";
cout<<a.second;
cout<<endl;
}
}
任何时候都有键/值关系的数据,如果还需要密钥,一对就可能会派上用场。
一对只能存储两个元素,因此您尝试存储三对的尝试无法正常工作。每个新对将替换旧对。如果您需要多个对,请为您想要的一对类型添加一个容器。示例:
#include <iostream>
#include <tuple>
#include <vector>
int main() {
std::vector<std::pair<int, int>> a;
a.emplace_back(1, 22);
a.emplace_back(2, 33);
a.emplace_back(3, 44);
for(auto [First, Second] : a) {
std::cout << First
<< "-->"
<< Second
<< "n";
}
}
我们如何迭代成对
你不能。如果您需要将这些值传递给一个函数,将某些内容作为参数作为参数,您需要手动执行此操作,例如:
for(auto p : a) { // a is a std::vector<std::pair<int, int>>
for(auto value : {p.first, p.second}) {
std::cout << value << "n";
}
}
std::pair
用于std::map
和std::unordered_map
的实现。
对于std::map
和std::unordered_map
,
value_type
是std::pair<const Key, T>
除此之外,std::pair
对于创建由两个成员组成的类型方便。
[对类]像数据类型或容器一样?
所有类都是数据类型。更具体地说,std::pair
是类模板。它不是这样的课程,但它的实例是类。
std::pair
不是容器。
在C
中对Pair类STL的用途是什么
其目的是将两个对象分组在一起。std::pair
的实例是一个具有两个成员对象的类。可以在没有模板的情况下定义此类类:
struct CustomClassWithoutStd {
int first;
std::string second;
};
std::pair
优于自定义类的优点是您不需要为这些成员指定名称,并且具有不同用例的不同对可以进行处理,因为它们是同一对类型,每个成员的名称相同。
主要缺点是您不能为这些成员命名,这通常会降低程序的可读性。
我基本上想知道我们可以在哪个领域使用stl
标准库在关联容器的接口中使用std::pair
,其中一对将键和值分组在一起。因此,当您使用此类容器时,也需要使用对。
我认为,这是一个糟糕的设计选择,一个具有正确命名成员的课程将是更好的。
我们如何迭代配对
如果您的功能模板可以接受该对的任何一部分,则可以用这样的两个部分调用它(我将流插入作为此类模板的示例(:
auto a = std::make_pair(1, 22);
cout << a.first;
cout << a.second;
- 防止主数据类型C++的隐式转换
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在C++中打印指向不同基元数据类型的指针的内存地址
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 如何计算数据类型的范围,例如int
- C++中数据类型修饰符的顺序
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 特定数据类型的模板类
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- 有没有办法提示用户使用哪种数据类型作为模板 c++
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何获取C++字符数据类型的地址
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 构造智能点数据类型以及普通数据类型的通用方法
- 如何使映射键具有两种不同的数据类型?
- 数据类型"struct seq<0, 1, 2>{}"含义是什么?
- 如何在不破坏现有应用程序的情况下更改 API 中 stl 容器的数据类型?
- 在C 中,对Pair类STL的用途是什么,就像数据类型或容器一样
- 如何确保数据类型与C++中需要的数据类型一样大