草庐IT

vector-class-library

全部标签

c++ - 使用 C++17 或更高版本对 vector 中的元素对求和的大多数 'functional' 方法?

我想要一些关于使用现代C++从vector(第1和第2、第3和第4等)中收集成对连续元素的最简洁和“功能性”方法的建议。假设vector是任意的,但长度是偶数。对于我放在一起的例子,我总结了每一对的元素,但这不是主要问题。我应该补充一点,我将只使用STL,不使用Boost。在Python中,我可以通过迭代器将它们压缩成二元组s=range(1,11)print([(x+y)forx,yinzip(*[iter(s)]*2)])在Perl5中,我可以剥离对useList::Utilqw/pairssum/;usefeature'say';@s=1..10;saysum@$_foreach

c++ - std::vector 构造,具有元素的就地构造

是否可以构造一个具有初始大小的std::vector并就地构造它的元素?我存储的类型是不可复制的,所以这不起作用,因为初始值被构造为临时值并复制到元素:#include#include#includestructA{A(inti=0):i_(i){};inti_;std::unique_ptrp_;//notcopyable};intmain(){std::vectorv(10,1);//error}这接近我想要达到的目标,也许还不错,但我想知道是否有更简洁的方法:intmain(){//std::vectorv(10,1);//errorstd::vectorv;v.reserve(

c++ - 构造后立即在 vector 上调用 clear?

我见过一些像这样的C++代码:std::vectorvec;vec.clear();vec.push_back(42);创建vector后立即清除vector的目的(如果有)是什么? 最佳答案 它没有任何用处-vector已经在空状态下创建。如果幸运的话,您的编译器将完全优化掉这个冗余调用-gcc和clang的最新版本都是exactlythat. 关于c++-构造后立即在vector上调用clear?,我们在StackOverflow上找到一个类似的问题: h

C++大学类(class)

你知道哪所大学有在线C++类(class)吗?我正在寻找类似于MIT风格的在线讲座的内容(讲义、项目和示例、作业、考试、解决方案和视频内容)。This是我在麻省理工上查到的,但是id没有视频内容。 最佳答案 我不太了解C++,但就编程概念的视频讲座而言,请查看:http://academicearth.org/subjects/computer-science 关于C++大学类(class),我们在StackOverflow上找到一个类似的问题: https:

结构 vector 的 C++ 映射?

下面是我的代码片段:structdv_nexthop_cost_pair{unsignedshortnexthop;unsignedintcost;};map>dv;我收到以下编译器错误:error:ISOC++forbidsdeclarationof`map'withnotype声明这个的正确方法是什么? 最佳答案 要么您忘记了#include正确的header,要么没有导入std命名空间。我建议如下:#include#includestd::map>dv; 关于结构vector的C+

具有构造函数的类的 C++ vector

//Usingg++andubuntu.#includeusingnamespacestd;定义一个类:classfoo(){(...)foo(intarg1,doublearg2);}构造函数:foo::foo(intarg1,doublearg2){(...)//arrayswhoselengthdependuponarg1andarg2}我想做这样的事情:vectorbar(10);//error:nomatchingfunctionforcallto'foo::foo()'bar[0]=newfoo(123,4.56);(...)另一种方法(我不太喜欢)是使用push_back

C++——获取指向 vector 的内部指针

我使用下面的方法来获取分配的内存空间,而不用担心如何回收分配的资源。#includeusingnamespacestd;int_tmain(intargc,_TCHAR*argv[]){vectorvecInts;for(intiInd=0;iInd但是,我不确定这样的方法是否好。谢谢 最佳答案 是的,考虑到您提到的预防措施(以及其他明显的预防措施,例如不使用指向超出范围的vector的指针等),这很好。指针将以与容器中的迭代器完全相同的方式有效和无效。 关于C++——获取指向vecto

c++ - 如何在 Cython 中声明指针 vector ?

我想声明这样的东西:cdefvector[Node*]list2node(listmy_list):但是Cython给我这个错误:cdefvector[Node*]list2node(listmy_list):^------------------------------------------------------------mod.pyx:77:20:Expectedanidentifierorliteral 最佳答案 您不需要*--vector[Node]应该为Node指针的vector生成代码。使用Cython0.14.1

c++ - 如何访问封装在类中的未命名的 "enum class"?

classA{public:enumclass{HELLO,WORLD};};知道了,在class中,声明一个简单的enum(而不是enumclass)是一个更好的主意,因为它已经使用class标识键入。但上面的语句仍然是一个有效的C++0x签名。现在如何访问外部未命名的enumclass?inti=A::HELLO;//error:‘HELLO’isnotamemberof‘A’ 最佳答案 实际上,这是无效的。C++0xFDIS说(9.2p1)Exceptwhenusedtodeclarefriends(11.3)ortointr

c++ - 从 C++ 到 AS3 : what are fundamental AS3 data structures classes?

我们正在将游戏从C++移植到Web;游戏大量使用STL。您能否提供与以下STL容器等效的类的简短比较图表(如果可能,提供一些基本操作的代码示例,如插入/删除/搜索和(如果适用)equal_range/binary_search):std::vectorstd::setstd::mapstd::liststdext::hash_map?非常感谢您的宝贵时间!更新:哇,看来我们这里没有我们需要的一切:(谁能指出一些用于AS3程序的行业标准算法库(如C++中的boost)?我无法相信人们可以在没有平衡二叉搜索树(std::setstd::map)的情况下编写非平凡的软件!