问题标签 [std-pair]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
664 浏览

php - php 有 c++ 的 std::pair 吗?

我想在 PHP 中创建一个关联数组,其中键是一对字符串。

起初我正在考虑将字符串与中间的某种唯一分隔符连接起来,然后再将它们分开,但这似乎是使用一对的hacky解决方法。

考虑以下代码:

显然,此代码将不起作用,因为您不能在 PHP 中将数组用作数组中的键。有没有一种方法可以在不连接然后解析字符串的情况下做这样的事情?

编辑

我想这样做是有原因的。我有一个array(key=string1,value=array(key=string2,value=occurrences))并且我正在尝试查找字符串对的前 5 个(就出现次数而言)。所以我基本上是想把它展平成一个一维数组,然后对它进行排序,这样我就可以轻松地抓住前 5 个。但要做到这一点,我需要能够在排序后单独提取字符串,这可以使用上面解释的除法器算法来完成,但这不是可取的,这就是我要求替代方案的原因。

0 投票
3 回答
2411 浏览

c++ - c++ 为 std::pair 重载 operator[]

我经常使用成对的值:std::pair<int, int> my_pair. 有时我需要对 和 执行相同的my_pair.first操作my_pair.second

如果我能做my_pair[j]并循环 j=0,1 ,我的代码会更流畅。(我避免使用数组,因为我不想费心分配内存,而且我pair广泛使用其他东西)。

因此,我想定义 operator[]for std::pair<int, int>

而且我无法让它工作,(我对模板等不太擅长)......

无法编译。其他变体也失败了。

据我所知,我正在关注Stack Overflow 运算符重载 FAQ,但我想我错过了一些东西......

0 投票
2 回答
158 浏览

c++ - 如何从以一对为键的映射中检索值?

所以可以说我有:map<pair<int, MyEnum>, string> myMap;

我添加了一个键值:myMap[make_pair(1, MyEnum::first)] = "something";

如何检索“某物”的值

所以如果地图是map<int, string>并且我有myMap[1] = "something";

我会说string s = myMap[1]

0 投票
2 回答
415 浏览

c++ - 如何在 C++ 中初始化类的私有成员

嗨,我有一个带有一些私有成员的 c++ 类,如下所示

现在我想创建一对,比如

evp.first="someint"; evp.second="somestring";

然后将这个 evp 推入 edgeList 即 edgeList.push_back(evp); 现在问题出在 setter 函数中,我做了这样的事情:

现在我不知道如何用 vertID、edge 填充 evp 对。

0 投票
3 回答
10694 浏览

c++ - C ++设置搜索对元素?

所以我有一套pairs<string ,string>

我想用它find()来搜索一个字符串,该字符串将位于该对的“第一个”中,然后如果我首先找到该字符串,我想从该函数返回第二个。

我目前的尝试是..

0 投票
3 回答
5996 浏览

c++ - 对相等运算符重载以插入集合

我正在尝试将 a 添加pair<int,int>到集合中。如果一对与集合中的另一个共享相同的两个值,则不应插入它。

这是我的非工作代码:

目前,即使已经存在 (1,4) 对,也会添加 (4,1) 对。该集的最终内容是:

我希望它是

我尝试在重载方法中放置断点,但它们从未到达。我做错了什么?

0 投票
2 回答
1163 浏览

c++ - Google Mocked 成员函数中的 std::pair 参数无法编译

我有一个方法接口和一个模拟该接口的类。该方法采用单个参数。只有当该参数是类型时std::pair<Something, Something>,它才会编译失败。我正在使用 MSVC 2010,所以问题可能是编译器或 STL 实现特定的,当然,除非问题与湿件相关,这是我的最佳猜测。我一定遗漏了一些明显的东西。就像纳米探针一样。

实际的测试用例不必取消注释,错误就会显现出来。

std::pair<>目前,我通过将a包装来解决这个问题struct,但这是次优的。

错误消息的长度相当不幸,但它可能会有所帮助:

0 投票
1 回答
2568 浏览

c++ - C++ 中的集合和 xmemory

我要做的就是在给定关系的情况下制作一组对。我不断从文件 xmemory 中的第 208 行收到以下错误:

错误 C2664: 'std::pair<_Ty1,_Ty2>::pair(std::pair<_Ty1,_Ty2> &)' : 无法将参数 1 从 'std::pair<_Ty1,_Ty2> ' 转换为 'std: :pair<_Ty1,_Ty2> &' c:\program files (x86)\microsoft visual studio 10.0\vc\include\xmemory 208

我不知道为什么,这是我的代码:

0 投票
4 回答
1297 浏览

c++ - 从 STL 映射迭代器中获取字段

我有一个地图容器来存储某些对象,以及它们的名称和类型:

但是,在代码的许多部分中,都有这样的结构:

显然,很多“it->second.second”不是很清楚,而且无法维护。如果以后改了,比如多支持一个领域,就全断了。因此,我试图通过函数来​​更改它们以访问字段,如下所示:

同样,还有函数 getObjName 和 getObjType。

还有人建议我让迭代器返回这些字段会更清楚:

但我认为不应继承 STL 迭代器以具有这些功能,对吗?除了为地图创建一个包装器并拥有自己的带有这些函数的迭代器外,我没有其他方法可以做到这一点。

那么,最合适的选择是什么?有没有其他方法可以解决我没有看到的这个问题?

0 投票
2 回答
1927 浏览

c++ - 无法访问成对向量中的值

我有一个成对的向量作为对象内的一个字段。所述对象有一个方法,我需要访问向量中的对中的值。我正在使用迭代器来指向我希望访问的向量中的位置。以下是包含向量的代码片段:

在头文件中:

在构造函数中:

在方法:

但是,当我运行此代码时,并没有创建 y。当我使用断点查看变量时,它根本没有显示在 Visual Studio 中。但是,如果我换行,y 是可访问的,而 x 是不可访问的。有任何想法吗?

编辑:我发现了以下作品: