问题标签 [tr1]

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 投票
7 回答
15506 浏览

c++ - 我不明白 std::tr1::unordered_map

我需要一个关联容器,它可以让我通过字符串索引某个对象,但它也保持插入的顺序,所以我可以通过它的名称查找一个特定的对象,或者只是迭代它并以我插入的相同顺序检索对象他们。

我认为链表和哈希映射的这种混合应该可以完成这项工作,但在我尝试使用之前,我std::tr1::unordered_map认为它以我描述的方式工作,但事实并非如此。那么有人可以解释一下的含义和行为unordered_map吗?


@wesc:我确定 std::map 是由 STL 实现的,而我确定 std::hash_map 不在 STL 中(我认为旧版本的 Visual Studio 将它放在名为 stdext 的命名空间中)。

@cristopher:所以,如果我做对了,区别在于实现(以及性能),而不是它在外部的行为方式。

0 投票
7 回答
6999 浏览

c++ - 比较 std::tr1::function<> 对象

我一直在尝试使用 tr1 函数模板在 C++ 中实现类似 C# 的事件系统,该函数模板用于存储处理事件的函数。

我创建了一个向量,以便可以将多个侦听器附加到此事件,即:

我希望能够从列表中删除一个处理程序以停止侦听器接收事件。

那么,如何在此列表中找到与给定侦听器对应的条目?我可以测试列表中的“函数”对象是否引用特定函数吗?

谢谢!

编辑:在研究了 boost::signal 方法后,似乎它可能是使用令牌系统实现的,正如你们中的一些人所建议的那样。这是有关此的一些信息。观察者在附加到事件时会保留一个“连接”对象,如果需要,此连接对象用于断开连接。所以看起来无论你是使用Boost还是使用tr1滚动你自己的,基本原理都是一样的。即它会有点笨拙:)

0 投票
3 回答
1719 浏览

c++ - GCC 3.4.4 上的 C++ tr1(适用于诺基亚 N810 平板电脑)

如何让 C++ tr1成员(尤其是 shared_ptr,但我们希望函数和绑定以及所有其他成员)与GCC 3.4.4(用于诺基亚N810平板电脑)一起工作。

有人做过吗?尝试过这个?

我们升级到 GCC 4.x 来为这个设备进行交叉编译可能是不可行的(但如果你已经这样做了,我们很想知道)。

可能有很多方法,我想避免其他人遇到的死胡同。

我们试图避免引入 boost,因为它可能是相互依赖的(你引入了一个 boost header,你最终会得到 20 个以上),并且保持代码大小对我们很重要。

谢谢!

0 投票
2 回答
8002 浏览

c++ - tr1::reference_wrapper 有什么用?

最近,我一直在阅读 Scott Meyers 出色的Effective C++书籍。在最后一个技巧中,他介绍了 TR1 的一些功能——我通过 Boost 了解了其中的许多功能。

但是,有一个我绝对不认识:tr1::reference_wrapper。

我将如何以及何时使用 tr1::reference_wrapper?

0 投票
3 回答
1881 浏览

c++ - 什么是 tr1::result_of 的好用例?

我听说 tr1::result_of 在 Boost 内部经常使用......我想知道是否有任何好的(简单)用例用于 tr1::result_of 我可以在家里使用。

0 投票
5 回答
4532 浏览

c++ - 惯用 std::auto_ptr 还是只使用 shared_ptr?

现在shared_ptr在 tr1 中,您认为使用 应该发生std::auto_ptr什么?它们都有不同的用例,但auto_ptr也可以用 解决所有用例shared_ptrauto_ptr如果您想明确表示在任何给定点上只有一个类拥有所有权,您会放弃还是继续使用它?

我的看法是,使用auto_ptr可以增加代码的清晰度,正是通过增加细微差别和代码设计的指示,但另一方面,它在培训新程序员时增加了另一个微妙的问题:他们需要理解智能指针和它们如何工作的详细信息。当您在任何地方只使用一个智能指针时,您只需制定一条规则“将所有指针包装在shared_ptr”中并完成它。

你对此有何看法?

0 投票
3 回答
5488 浏览

c++ - 如何在 Visual Studio 2008 SP1 中使用 std::tr1::mem_fun?

VS2008 SP1文档讨论了std::tr1::mem_fun.

那么为什么,当我尝试使用时std::tr1::mem_fun,为什么会出现这个编译错误?:

同时,我可以std::tr1::function毫无问题地使用。

这是我试图编译的示例代码,它应该通过 a调用TakesInt的实例:Testfunction<void (int)>

我正在尝试使用 tr1 版本mem_fun,因为使用std::mem_fun我的代码时也无法编译!我无法从编译器错误中判断问题出在我的代码上,还是可以通过使用 tr1's 来解决mem_fun。那是你的 C++ 编译器错误(或者可能只是我!)。


更新:对。答案是正确拼写为 mem_fn!

但是,当我修复它时,代码仍然无法编译。

这是编译器错误:

0 投票
2 回答
1803 浏览

c++ - tr1::mem_fn 和具有默认参数的成员

我有一个带有默认参数的成员函数的类。

通过 std::tr1::mem_fn 我可以调用它:

也就是说,如果我想使用默认参数调用对象上的可调用成员,那么正确的语法是什么?

g++ 抱怨以下错误:

尽管如此,当 Class::member 被采用不同参数的成员重载时,我也有同样的问题......

0 投票
3 回答
3214 浏览

c++ - tr1::mem_fn 和 tr1::bind:关于 const 正确性和重载

以下代码段有什么问题?

尝试用 g++-4.3 编译它,似乎cv -qualifier 重载函数混淆了两者tr1::mem_fn<>tr1::bind<>并出现以下错误:

相反,以下代码段编译但似乎破坏了const-correctness

有什么线索吗?

0 投票
6 回答
2939 浏览

c++ - 是否有一个标准的 C++ 函数对象用于拆分 std::pair?

有谁知道是否存在用于访问 std::pair 元素的事实上的标准(即 TR1 或 Boost)C++ 函数对象?在过去的 24 小时内,我曾两次希望拥有类似keysPerl 哈希函数的东西。例如,最好在 std::map 对象上运行 std::transform 并将所有键(或值)转储到另一个容器。我当然可以编写这样一个函数对象,但我更愿意重用一些吸引眼球的东西。