相关疑难解决方法(0)

按值对地图<键,值>进行排序

我是Java的新手,经常发现我需要对Map<Key, Value>值进行排序.

由于值不是唯一的,我发现自己将其转换keySet为a array,并通过数组排序对该数组进行排序,并使用自定义比较器对与键关联的值进行排序.

有没有更简单的方法?

java sorting collections dictionary

1569
推荐指数
27
解决办法
134万
查看次数

我为什么不#include <bits/stdc ++.h>?

我在我的代码中发布了一个问题,其唯一的#include指令如下:

#include <bits/stdc++.h>
Run Code Online (Sandbox Code Playgroud)

我的老师告诉我这样做,但在评论部分,我被告知我不应该这样做.

为什么?

c++ portability c++-faq turbo-c++ implementation-defined-behavior

215
推荐指数
6
解决办法
2万
查看次数

如何根据对的第二个元素对对向量进行排序?

如果我有一对矢量:

std::vector<std::pair<int, int> > vec;
Run Code Online (Sandbox Code Playgroud)

是否有简单的方法根据对的第二个元素按递增顺序对列表进行排序?

我知道我可以编写一个可以完成工作的小函数对象,但是有没有办法使用STL的现有部分并std::less直接进行工作?

编辑:我明白我可以编写一个单独的函数或类来传递给第三个参数进行排序.问题是我是否可以用标准的东西来构建它.我真的看起来像:

std::sort(vec.begin(), vec.end(), std::something_magic<int, int, std::less>());
Run Code Online (Sandbox Code Playgroud)

c++ stl stdvector

125
推荐指数
5
解决办法
12万
查看次数

使用值对std :: map进行排序

我需要std::map按值而不是按键排序.有一个简单的方法吗?

我从下面的线程中得到了一个解决方案:
std :: map按数据排序?
有更好的解决方案吗?

map<long, double> testMap;
// some code to generate the values in the map.

sort(testMap.begin(), testMap.end());  // is there any function like this to sort the map?
Run Code Online (Sandbox Code Playgroud)

c++ dictionary std

56
推荐指数
6
解决办法
13万
查看次数

std :: map,如何按值排序,然后按键排序

我需要按值排序地图,然后按键排序.我有一张包含这样内容的地图......

  1  realistically
  8         really
  4         reason
  3     reasonable
  1     reasonably
  1     reassemble
  1    reassembled
  2      recognize
 92         record
 48        records
  7           recs
Run Code Online (Sandbox Code Playgroud)

我需要按顺序获取值,但是关键是在值按顺序后键需要按字母顺序排列.最好的方法是什么?

c++ sorting algorithm dictionary key

38
推荐指数
2
解决办法
14万
查看次数

我如何通过其.second参数对地图进行排序

如果我有一个从字符串到int的stl映射,我想打印排序的所有int值 - 我该怎么做?

c++ stl

21
推荐指数
2
解决办法
5万
查看次数

C++如何将地图复制到矢量

在C++中将一对从地图复制到矢量的最佳方法是什么?我这样做,所以我可以随后对矢量进行排序.

c++ collections vector map

18
推荐指数
3
解决办法
2万
查看次数

为什么在声明std :: set时需要重复排序子程序?

在我的C++程序中,我试图按值而不是按键对我的地图进行排序.

这个问题来看,似乎很清楚,这样做的方法是创建一个集合,其元素是成对的,并且由我自己的less-than函数排序.

这是一些示例代码,我尝试这样做:

#include <map>
#include <set>
#include <iostream>
#include <string>

using namespace std;

bool compareCounts(const pair<string, size_t> &lhs, const pair<string, size_t> &rhs);

int main (int argc, char *argv[]) {
        map <string, size_t> counter = { {"A", 1}, {"B", 2}, {"C", 3} };
        set <pair<string, size_t>, decltype(compareCounts) *> sorted_counter;
        for (map<string, size_t>::iterator it = counter.begin(); it != counter.end(); ++it) {
                cout << "About to add: " << it->first << ":" << it->second << endl;
                auto ret = sorted_counter.insert(*it); …
Run Code Online (Sandbox Code Playgroud)

c++ dictionary stl set c++11

6
推荐指数
1
解决办法
306
查看次数

std::map 按数据排序?

有没有办法按数据而不是键对 std::map 进行排序?现在我的代码将整个地图复制到一个数组中只是为了执行此操作。

c++ sorting stdmap

5
推荐指数
1
解决办法
1万
查看次数

c ++,stl,map如何用值排序,而不是键

我想只使用值而不是键来对地图容器中的元素进行排序.怎么做?我知道地图可以按键值排序,但反之亦然.我在stackoverfrlow中发现了同样的问题.我喜欢这个解决方案.但是我想澄清它是什么意思"转储pair<K,V>".我不想为此创造特殊的结构,它不优雅.你是如何实现这个解决方案的

c++ stl

4
推荐指数
1
解决办法
1万
查看次数