草庐IT

vector-class-library

全部标签

c++ - 关于 vector 的困惑

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭3年前。Improvethisquestion我很想知道下面的代码是什么意思我只是想知道它是如何工作的。vectorlotteryNumVect(10);//Idonotunderstandthispart.intlotteryNumArray[5]={4,13,14,24,34};//Iunderstandthispart.lotteryNumVect.insert(lotteryNumVect.begin(),lotteryNumArra

C++ 链接错误 : Undefined symbols using a templated class

我在编写的类中遇到了一些非常奇怪的链接错误。我完全找不到任何可以描述正在发生的事情的东西。VisualStudio(WindowsXP)players.obj:errorLNK2019:unresolvedexternalsymbol"public:__thiscallTreeNode::TreeNode(void)"(??0?$TreeNode@VPlayer@@@@QAE@XZ)referencedinfunction"public:__thiscallPlayerList::PlayerList(void)"(??0PlayerList@@QAE@XZ)Xcode(OSX10.5

C++ 专家 : is the offset of a member variable to its class constant under these conditions?

给定FooClass*类型的变量foo和该类中名为bar的成员变量,是foo之间的距离和&(foo->bar)在有一些约束的任何情况下都是一样的:FooClass是非POD类型。我们知道foo将始终指向FooClass的实例,而不是它的某个子类型。我们只关心单一编译器和单一编译下的行为;也就是说,在gcc下这可能导致的值永远不会在用MSVC编译的代码中使用,并且永远不会保存以在编译之间重新使用。它在二进制中计算并在二进制中使用,仅此而已。我们不使用自定义new,尽管该类的一些实例可能是堆栈分配的,一些是堆分配的。FooClass没有明确的ctor;它依赖于编译器生成的(FooClass

c++ - 如何在 vector 中搜索元素?

我有这样的代码....std::vector::iteratorp;p=find(v.begin(),v.end(),"asdasda");cout如果“asdasda”不是vector的一部分,p指向一些垃圾并且cout给出段错误。只有找到“asdasda”才能使cout执行的if语句应该是什么?以及“asdasda”在v..中的位置,就像我们之前将v[3]声明为“asdasda”一样,那么我如何从find中知道v[3]是“asdasda”呢? 最佳答案 p不指向“垃圾”,当找不到内容时,它只是变成了v.end()。if(p!=v

c++ - 在给定指向该元素的指针的情况下查找 vector 中元素的索引

我有一个结构vector,如下所示:std::vectorelems.如果我有一个mystruct我知道的指针指向elems的元素之一,如何在elems中获取其索引?? 最佳答案 ptr-&elems[0];从C++03开始,要求vector存储是连续的,标准中对“连续”的定义是&v[n]==&v[0]+n;[编辑:从相当理论上的可移植性角度来看,请注意允许实现定义SIZE_MAX和ptrdiff_t,这样就可以在相同的范围内减去两个指针结果undefinedobject。您希望没有实现会安排实际导致问题,但您永远不会知道。实现很容

c++ - 检查大型字符串 vector 中的重复项

我正在尝试查找重复的字符串实例,其中我有一个包含约250万个字符串的vector。~目前我使用类似的东西:std::vectorconcatVec;//HoldsalloftheconcatenatedstringscontainingcolumnsC,D,E,JandU.std::vectordupecheckVec;//Holdsalloftheuniqueinstancesofconcatenatedcolumnsstd::vectorlinenoVec;//Holdsthelinenumbersoftheuniqueinstancesonly//Copyfirstelement

C++11 基于范围的指针 vector

我刚刚编译了GCC4.6.0,我想尝试新功能,从基于范围的for循环开始。我想要更改的第一个循环是在指针的std::vector上迭代。我更改了代码以使用新语法,但它没有编译。我尝试用另一个for循环代替,它位于结构的std::vector上,它编译并运行得很好。这是一个简短的测试代码来向您展示我的问题:#include#includeintmain(){std::vectorvalues;values.push_back(2);values.push_back(5);values.push_back(8);values.push_back(13);values.push_back(1

c++ - 从 vector 到指针 vector 的最短转换

有没有从std::vector转换的捷径?至std::vector或std::vector?本质上我想替换:std::vectorsource;std::vectortarget;for(autoit=source.begin();it!=source.end();it++){target.push_back(&(*it));}单行。为了提供一些上下文:我有一组函数在std::vector上进行计算。还有一些需要std::vector.所以我需要来回转换几次,因为这些函数的接口(interface)不应该改变。 最佳答案 尽管您描述

c++ - 为什么 vector.push_back(auto_ptr) 无法编译?

我了解到STL可以禁止程序员将auto_ptr放入容器中。例如下面的代码不会编译:auto_ptra(newint(10));vector>v;v.push_back(a);auto_ptr有拷贝构造函数,为什么这段代码还能通过? 最佳答案 查看thedefinitionofstd::auto_ptr:namespacestd{templatestructauto_ptr_ref{};templateclassauto_ptr{public:typedefXelement_type;//20.4.5.1construct/copy/

c++ - 是否可以创建一个位集 vector ?

我正在尝试用C++创建一个位集vector。为此,我尝试了如下代码片段所示的尝试:vector>bvc;while(true){bitsetbstemp((long)xtemp);if(bstemp.count==y1){bvc.push_back(bstemp);}if(xtemp==0){break;}xtemp=(xtemp-1)&ntemp;}当我尝试编译该程序时,我收到了这样的错误:bvc未在范围内声明。它进一步说明模板参数1和2无效。(第一行)。此外,在包含bvc.push_back(bstemp)的行中,我收到一个错误,显示成员函数的使用无效。