std-pair 相关问题

std :: pair是一个完全由两个对象组成的有序异构序列(这是std :: tuple的一个特例)。

根据与原点的距离对点对向量进行排序

所以问题陈述是: 给定一个整数 n,后面跟着 n 对数字,它们是点的坐标。您必须打印出输入的顺序中的点,然后按顺序打印它们...

回答 1 投票 0

C++ STL 对表达式在 mac 上给出错误 [关闭]

在这里输入图片描述 我有这个错误。 我不知道该怎么做。我需要一些帮助。

回答 0 投票 0

std::pair from temporary:为什么调用复制构造函数而不是移动构造函数?

考虑以下代码: #include 使用命名空间标准; 结构 A { A(常量 A&){ 计算<<"copy constructor"< 考虑以下代码: #include<iostream> using namespace std; struct A { A(const A&){ cout<<"copy constructor"<<endl; } A(A&&){ cout<<"move constructor"<<endl; } ~A(){ cout<<"destructor"<<endl; } static std::pair<A,int> f1() { int i = 1; return std::pair<A,int>{i,2}; } static std::pair<A,int> f2() { int i = 1; return std::pair<A,int>{A(i),2}; } private: A(int){ cout<<"constructor"<<endl; } }; int main() { cout<<"f1: "<<endl; A::f1(); cout<<"f2: "<<endl; A::f2(); } 构造函数 A(int) 是私有的,因此 A 中的 pair<A,int> 不能由 int 构建。因此,在f1中构建了一个临时的。在 f2 中,我显式创建了临时文件,但行为不同,输出为: f1: constructor copy constructor destructor destructor f2: constructor move constructor destructor destructor 我希望在A::f1中也调用移动构造函数,但调用了次优的复制构造函数。为什么会这样? 如果你看对的构造函数 有趣的构造函数是 (2) 和 (3) // (2) constexpr pair( const T1& x, const T2& y ); // (3) template< class U1 = T1, class U2 = T2 > constexpr pair( U1&& x, U2&& y ); // SFINAE on constructible 注意,没有pair(T1&&, T2&&). 因为A(int)是private,std::is_constructible_v<A, int>是false。 所以对于f1,只有 (2) 是一个可行的构造函数(因此是副本)。 对于f2,(3)是可行的(并且更好的匹配),所以前进(所以移动)完成了。

回答 1 投票 0

使std::pair的第二个参数成为自定义类。

我在C++中实现了一个Node类,作为一个任务。该类:#pragma一次#include。 类 Node { size_t id; std::pair dist; public: /Node(); ...

回答 1 投票 -1

如何按键对 std::list 对进行排序?

我想对一个std::list进行排序。 > 在两个独立的函数中,通过键和值来实现。我得到了一个错误,说:错误:引用非静态 ...

回答 3 投票 2

在一个std::双和一个类的std::对上的std::greater。

当你有一个由int和类组成的std::pair时,std::greater是否适用?我试图创建一个按第一个元素排序的对的优先级队列:std::priority_queue

回答 1 投票 0

正在创建用户定义的类并检索数据?

java代码,此代码只是为了理解我有疑问的一些概念...。因此,帮助我解决该代码以获取预期的输出... :) public class PairDataStructure {public static void main(...

回答 1 投票 -1

返回时是否将复制std :: list >这样的结构?

我有一个期望从给定字符串中提取键值列表的函数,其中每个键/值对都由std :: pair表示,该函数具有如下签名:std :: list&。 。

回答 1 投票 0

解释未解决的外部C ++

我正在制作Minecraft渲染器。从区域文件加载世界时,它将解析的NBT数据存储在无序映射中,其中nbt数据为值,并且全局块为...

回答 1 投票 0

如何从成对向量中从c ++中的类对中删除值项?

我正在尝试删除所有披萨超过3天的订单:我具有此向量对:std :: vector > x; x.push_back(std :: make_pair(Client(2,“ Anca”),...

回答 1 投票 0

如何打印在c ++中具有第一和第二2类的对的向量?

我有这样的东西,其中Client和Order是类:std :: vector >对; pair.push_back(std :: make_pair(Client(2,“ Anca”),Order(3,1))));对。...

回答 1 投票 0

[stable_sort在成对的向量上,由成对的第一个元素按升序排列,而在C ++中没有比较器功能

#include 使用命名空间std; int main(){vector > v; v.push_back(make_pair(1,3)); v.push_back(make_pair(1,1)); v.push_back(...

回答 1 投票 0

使用后增量构造带有变量的std ::整数对

我尝试构造整数对,其中第二个整数比第一个整数大1:1 2 2 3 3 4同时使用std :: make_pair和构造函数,如下所示:std :: make_pair(n,n ++);但是,...

回答 1 投票 0

是否可以制作成对的阵列

我是C ++的新手,所以我想问一问,是否有可能在c ++中制作成对数组,就像我们创建成对向量一样。 int n; cin >> n;数组> v [n];我正在尝试...

回答 2 投票 0

有没有一种方法可以将std :: atomic存储在struct内部,std :: pair对内部?

VS2017当我尝试向存储在std :: pair(在std :: unordered_map内)的结构中添加std :: atomic时出现以下错误:错误C2660:'std :: pair :: pair' :...

回答 1 投票 0

复制vs in std :: pair支持初始化

我有以下代码,其输出显示在下面。我似乎无法理解为什么一组支撑式初始化会导致调用move构造函数,而另一组会导致...

回答 1 投票 1

如何仅使用第二个值从集合中找到一对?

我只想使用第二个元素来查找对,第一个元素可以是任何东西,而且所有第二个元素都是唯一的。使用std :: find_if进行代码,但这需要线性时间设置

回答 1 投票 2

如何使用可选元素初始化对的C ++ 17向量

在C ++ 17中,如何声明和初始化带有可选元素的向量对? std :: vector >> vec1 = {{1,true},...

回答 1 投票 1

如何声明带有可选元素的C ++ 17向量对

在C ++ 17中,如何声明和初始化带有可选元素的向量对? std :: vector >> vec1 = {{1,true},{2,false},{3,nullptr}} ...

回答 1 投票 0

我可以信任NVCC来优化返回类型中的std :: pair吗?

有时,人们想编写一个(小)CUDA设备端函数,该函数返回两个值。在C语言中,该函数需要两个输出参数,例如:__device__ void pair_maker(float x,float ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.