Tag: 标准库

C ++ valarray与vector

我喜欢vector很多。 他们漂亮,快速。 但是我知道这个叫valarray的东西存在。 为什么我会用valarray代替vector? 我知道valarrays有一些语法糖,但除此之外,它们何时有用?

Python的标准库 – 有平衡二叉树的模块吗?

Python的标准库中是否有AVL或Red-Black模块或其他types的平衡二叉树? 我试图find一个,但没有成功(我是相对较新的Python)。

什么是std :: promise?

我很熟悉新的标准库的std::thread , std::async和std::future组件(例如见这个答案 ),这很简单。 然而,我不能完全掌握std::promise是什么,它在什么情况下最好使用。 标准文档本身并不包含除了类纲要之外的大量信息,也不仅仅是:: thread 。 有人可以给一个std::promise的情况下简短,简洁的例子,它是最习惯的解决scheme?

如何在没有强制的情况下将列表压扁?

我试图实现类似于unlist的function,除了types不强制为向量,但保留types的列表将被返回。 例如: flatten(list(NA, list("TRUE", list(FALSE), 0L)) 应该返回 list(NA, "TRUE", FALSE, 0L) 代替 c(NA, "TRUE", "FALSE", "0") 这将由unlist(list(list(NA, list("TRUE", list(FALSE), 0L)) 。 从上面的例子可以看出,扁平化应该是recursion的。 在标准R库中是否有这样的function呢,或者至less有一些其他的function可以用来轻松高效的实现呢? 更新 :我不知道是否从上面清楚,但非列表不应该被夷为平地,即flatten(list(1:3, list(4, 5)))应返回list(c(1, 2, 3), 4, 5) 。

模板专精VSfunction重载

一本教科书我注意到,你可以提供自己的实现标准库函数,如swap(x,y)通过模板专门化function重载。 这对任何可以从除了赋值交换以外的其他types都有用的types是有用的,比如STL containers (已经有了交换,我知道)。 我的问题是: 有什么更好的:模板专门化给你的专门的交换实现,或function重载,提供了你想使用没有模板的确切参数? 为什么更好? 或者如果他们是平等的,为什么呢?

将整个ASCII文件读入C ++ std :: string

我需要将整个文件读入内存,并将其放在C ++ std::string 。 如果我将它读入char[] ,答案将非常简单: std::ifstream t; int length; t.open("file.txt"); // open input file t.seekg(0, std::ios::end); // go to the end length = t.tellg(); // report location (this is the length) t.seekg(0, std::ios::beg); // go back to the beginning buffer = new char[length]; // allocate memory for a buffer of appropriate dimension t.read(buffer, length); […]

子类/继承标准容器?

我经常阅读堆栈溢出这个语句。 就我个人而言,我没有发现任何问题,除非我以多形的方式使用它; 即我必须使用virtual析构函数。 如果我想扩展/添加标准容器的功能,那么比继承一个更好的方法是什么? 将这些容器包装在一个自定义类中需要更多的努力,并且仍然不干净。

从数组中删除重复的元素

我可能有一个如下所示的数组: [1, 4, 2 , 2 , 6 , 24, 15 , 2, 60, 15 , 6 ] 或者,实际上,数据的相似部分的任何序列。 我想要做的是确保每个相同的元素只有一个。 例如,上面的数组将变成: [1, 4, 2 , 6 , 24, 15 , 60] 请注意,删除了2,6和15的副本,以确保每个相同元素只有一个。 Swift是否提供了一个简单的方法,或者我必须自己做?