gpt4 book ai didi

c++ - 标准桶或计数排序

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:26 26 4
gpt4 key购买 nike

我一直想知道为什么 C++ 标准模板库似乎没有标准的桶/库(分布)排序。这些在现代编程中似乎未得到充分利用,显然是由于需要一种将对象转换为整数以进行排序的方法。两者对我来说似乎都比较简单,那么我们为什么不在图书馆中使用它呢?

template<class RandomAccessIterator, class Index, class index_type=unsigned int>
void std::distribution_sort(
RandomAccessIterator begin,
RandomAccessIterator end
index_type minval,
index_type maxval,
Index indexer,);

unsigned int indexer(const std::string& word)
{
switch(word.size()) {
case 0: return 0;
case 1: return (word[0]<<24);
case 2: return (word[0]<<24) | (word[1]<<16);
case 3: return (word[0]<<24) | (word[1]<<16) | (word[2]<<24);
default: return (word[0]<<24) | (word[1]<<16) | (word[2]<<8) | (word[3]);
}
}

int main() {
std::vector<std::string> data;
data.push_back("");
data.push_back("APPLES");
data.push_back("banana");
std::distribution_sort(data.begin(), data.end(), 0, ~0, indexer);
}

最佳答案

Both seem relatively simple to me, so why don't we have this in the library?

很多事情都很简单。这不是将它们放在图书馆的好理由。

我想原因是 std::sort 对于大多数情况来说已经足够好了。

关于c++ - 标准桶或计数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7115027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com