草庐IT

generic-collections

全部标签

c++ - 在 C++ 中实现 'bounded genericity'

我正在将一个项目从Java转移到C++,但我在Java中遇到了一些相对简单的问题。我有一个类X用于处理Y类型的对象和从Y继承的对象.X经常需要从Y调用一个方法,说kewl_method(),而且这个方法在每个继承自Y的类中都不一样.在Java中,我可以做这样的事情:publicclassX我会打电话kewl_method()在X没有任何头痛,它会做我想做的。如果我理解正确(我是C++的新手),那么C++中没有有限泛型这样的东西,所以如果我使用带有X的模板完全可以用任何东西填充它,我将无法调用kewl_method()的变体.在C++中执行此操作的最佳方法是什么?使用类型转换?限制:我不

generics - 让非泛型类在构造函数中采用泛型参数

我想在kotlin中有一个非泛型类,它在其构造函数中使用泛型来指定该参数。但是,我不知道如何做到这一点,并且Intellij的Java-to-Kotlin转换器中断了。我的java类是这样的publicclassTest{interfaceI1{}interfaceI2{}privatefinalI1mI1;privatefinalI2mI2;publicTest(Thost){mI1=host;mI2=host;}}转换器的输出如下所示。classTest(host:T)whereT:I1,T:I2{internalinterfaceI1internalinterfaceI2priv

generics - 让非泛型类在构造函数中采用泛型参数

我想在kotlin中有一个非泛型类,它在其构造函数中使用泛型来指定该参数。但是,我不知道如何做到这一点,并且Intellij的Java-to-Kotlin转换器中断了。我的java类是这样的publicclassTest{interfaceI1{}interfaceI2{}privatefinalI1mI1;privatefinalI2mI2;publicTest(Thost){mI1=host;mI2=host;}}转换器的输出如下所示。classTest(host:T)whereT:I1,T:I2{internalinterfaceI1internalinterfaceI2priv

c++ - std::generic_category() 没用?

引自C++11标准:19.5.1.5Errorcategoryobjects[syserr.errcat.objects]consterror_category&system_category()noexcept;4Remarks:Theobject’sequivalentvirtualfunctionsshallbehaveasspecifiedforclasserror_category.Theobject’snamevirtualfunctionshallreturnapointertothestring"system".Theobject’sdefault_error_cond

collections - Kotlin:通过强制转换修改(不可变)列表,合法吗?

我们知道Kotlin中的List是不可变的,即你不能像下面这样添加和删除。classTempClass{varmyList:List?=nullfundoSomething(){myList=ArrayList()myList!!.add(10)myList!!.remove(10)}}但如果我们将其转换为如下所示的ArrayList,则添加和删除可以正常工作。classTempClass{varmyList:List?=nullfundoSomething(){myList=ArrayList()(myList!!asArrayList).add(10)(myList!!asArra

collections - Kotlin:通过强制转换修改(不可变)列表,合法吗?

我们知道Kotlin中的List是不可变的,即你不能像下面这样添加和删除。classTempClass{varmyList:List?=nullfundoSomething(){myList=ArrayList()myList!!.add(10)myList!!.remove(10)}}但如果我们将其转换为如下所示的ArrayList,则添加和删除可以正常工作。classTempClass{varmyList:List?=nullfundoSomething(){myList=ArrayList()(myList!!asArrayList).add(10)(myList!!asArra

c++ - 文章 Generic<Programming> Typed Buffers 在 C++ 11 中是否完全过时?

我正在阅读GenericTypedBuffers,一篇来自AndreiAlexandrescu的相当古老的文章。我想知道它是否仍然有意义。在他的文章中,Alexandrescu指出了当性能至关重要时std::vector的一些问题:分配vector时不必要的数据初始化,我认为可以使用std::vector::reserve解决使用C++11和移动语义解决的昂贵移动操作大多数编译器不会通过使用std::memcpy和std为char等类型优化std::vector::memmove。现在对于主流编译器来说这是不正确的(据我所见)。指数级增长。您无法通过简单的方法调用来缩小std::vec

java - C++ 到 Java : searching a collection efficiently

我的背景主要是C++,现在我正在愤怒地编写一些Java。我发现在C++中使用STL的一些基本内容在Java中似乎比我认为的更麻烦。我的结论是,可能有一个更好的Java惯用语我还没有理解。这是一个使用伪代码的示例。我有一些事物的集合,这些事物具有基于某些碰巧是字符串的成员变量的自然排序关系。classThing{Stringkey1;Stringkey2;}在C++中,我可能会定义一个排序运算符//////@brief///provideatotalorderfor'Things'usingkey1andkey2///booloperatorb.key1)returnfalse;else

c++ - collect2.exe 有什么作用?

当我检查由gcc-v-oproggy.exeproggy.o生成的代码时,我发现命令行扩展为一大堆库选项和库,所有这些都使用collect2.exe链接。ld.exe怎么了?为什么我看不到?有人可以向我解释一下collect2.exe的作用吗? 最佳答案 collect2是一个用于生成构造函数表的实用程序,__main(在main开头调用的自动生成的函数)取决于。通常你看不到它,因为它在文件系统上被命名为ld,它又调用真正的ld(通常称为real-ld,尽管collect2会检查一个寻找它的地方的数量)

generics - Kotlin 泛型类型参数

源码如下funmain(args:Array){println("Hello,world!")valmutableIntList=mutableListOf(1,2,3)addInt(4,mutableIntList)//Nocompile-timeerroraddAnotherInt(5,mutableIntList)//Compile-timeerrorprintln(mutableIntList)}funaddInt(item:T,list:MutableList){list.add(item)}funaddAnotherInt(item:T,list:MutableList){