草庐IT

EidosValue_Int_vector

全部标签

c++ - vector 中的结构成员是否在 C++ 中初始化为零?

在C++中,当我有一个像这样的结构时structmyStruct{inti;boolb;MyClass*myobj;};然后我制作一个vectorstd::vectormyVector;然后我调整vector的大小myVector.resize(10);结构的成员会被初始化为零(包括指针)吗?我不能假设结构的成员中可能存在随机数据吗? 最佳答案 在这种特殊情况下,答案是是,因为std::vector::resize()的属性:Ifthecurrentsizeislessthancount,additionalelementsarea

c++ - 从字符串 vector 中获取字符串的第一个字符

如何在遍历字符串vector时获取第一个字符或如何通过索引从字符串vector中获取字符。这是我的代码:vector::iteratori=vec.begin();while(i!=vec.end()){if(i[0]==ch)cout它给出了错误:不匹配“operator==”(操作数类型为“std::basic_string”和“char”)| 最佳答案 尝试以下操作vector::iteratori=vec.begin();while(i!=vec.end()){if(i[0][0]==ch)couti[0]返回迭代器i指向的

c++ - 为什么 ((unsigned int)x) * y == ((unsigned int)(x * y) 总是为真?

我刚刚写了这些代码:intx=-1;//xmustbenegativeunsignedinty=1;//ymustbepositiveboolb;for(;;x--,y++){b=((unsignedint)x)*y==((unsignedint)(x*y));}然后我才发现b总是为真。在我看来,((unsignedint)x)*y会溢出,但((unsignedint)(x*y))不会。我真的很难相信这是真的。这只是巧合还是有一定规律可循? 最佳答案 在x*y中,x作为通常算术转换的结果已经转换为unsigned。§5/10:即您的

c++ - 通过转换将 C++ vector 复制到另一个 vector 的最佳方法

在应对时使用转换将一个vector复制到另一个vector的最佳方法是什么?我有以下代码:vectorfunction1(constvector&type1Vector){vectortype2Vector(type1Vector.size());for(vector::const_iteratorit=type1Vector.begin();it有没有更好的办法? 最佳答案 您的代码实际上包含一个错误,因为type2Vector的大小是type1Vector的两倍。您实际上将其初始化为type1Vector的大小,然后在其上添加转

基于另一列中的str中的str中添加int值

我正在尝试编写一个代码,该代码将加起来每个状态中的所有“计数”。这是我的.dbf(CSV)文件的示例。CountLatLonindex_righSTATE134531.551580000000000-88.4483800000000001992Alabama44531.999867999999900-88.4045430000000001992Alabama29932.448521000000000-88.3601960000000001992Alabama10632.897511999999900-88.3153290000000001992Alabama22933.346817000000

c++ - static_cast wchar_t* 到 int* 或 short* - 为什么它是非法的?

在MicrosoftVC2005和g++编译器中,以下会导致错误:在win32VC2005上:sizeof(wchar_t)为2wchar_t*foo=0;static_cast(foo);结果errorC2440:'static_cast':cannotconvertfrom'wchar_t*'to'unsignedshort*'...在MacOSX或Linuxg++上:sizeof(wchar_t)为4wchar_t*foo=0;static_cast(foo);结果error:invalidstatic_castfromtype'wchar_t*'totype'unsignedi

c++ - 使用 boost.python 公开 std::vector<double>

我已经编写了一些生成std​​::vector的C++代码。我还有一个python脚本来处理一些数据,目前,我是这样声明的(如下)。importnumpyx=numpy.random.randn(1000)y=numpy.random.randn(1000)我可以很好地运行脚本。来self的C++代码:usingnamespaceboost::python;try{Py_Initialize();objectmain=import("__main__");objectglobal(main.attr("__dict__"));objectresult=exec_file("scatte

c++ - 有没有办法将双端队列的内部存储大小作为 vector::capacity?

我理解deque和vector都预留了一定的增长空间。vector::capacity()能够获取一个vector的内部保留空间。Deque在标准中没有这样的成员。有什么方法可以获取这些信息吗? 最佳答案 您必须深入研究实现才能弄清楚。gcc4.1.1附带的std::deque版本似乎以512字节block分配内存。但这就是我在盯着所有下划线和C风格转换为size_t15分钟后得到的。然后我看到了这条评论:Theinitialunderlyingmemorylayoutisabitcomplicated...

c++ - 如何从 C++ 中的函数返回一个 vector<T>

我正在创建一个通用数据结构,我想返回一个vector,其中包含我的结构中的一些对象。我试过了templatevectorDataStructure::getItems(intcount){vectoritems;for(inti=0;i但是编译器说错误:ISOC++禁止声明没有类型的“vector”错误:应为“;”在' 最佳答案 vector未定义。您需要#include并使用std::vector指定其命名空间或者放一个usingnamespacestd;在您的函数中或在全局范围内(应避免后一种建议)。#includetempla

c++ - 我应该公开 protected std::vector 吗?

我有一个类,我打算让其他人继承。它有一个std::vector,我只希望开发人员能够读取它,但不能修改它,我的基本函数会修改它。我应该提供一个返回const迭代器的函数,还是将vector公开为protected。谢谢 最佳答案 如果将vector公开为protected,子类将能够修改它。因此,您应该公开返回const迭代器的方法。您可以使用Non-VirtualInterfaceidiom为用户和子类公开不同的接口(interface)。 关于c++-我应该公开protectedst