草庐IT

c++ - 获取结构中元素的数量

我有一个结构:structKeyPair{intnNum;stringstr;};假设我初始化了我的结构:KeyPairkeys[]={{0,"tester"},{2,"yadah"},{0,"tester"}};我将创建多个不同大小的结构实例。因此,为了能够在循环中使用它并读取它的内容,我必须获取结构中的元素数量。如何获取结构中的元素数量?在这个例子中,我应该得到3,因为我初始化了3对。 最佳答案 如果您正在尝试计算keys数组的元素数量,您可以简单地执行sizeof(keys)/sizeof(keys[0])。重点是sizeof

c++ - 是否可以在声明后设置 constexpr 数组中元素的值?

是否可以在一处声明一个常量数组(可能是constexpr),然后在另一处定义它,一次定义一个元素?例如externconstexprintmyArray[100];myArray[0]=myConstexprFunction(0);myArray[1]=myConstexprFunction(1);//...myArray[100]=myConstexprFunction(100);我正在尝试做的事情需要这样的东西。也许可以使用类似的东西:http://b.atch.se/posts/constexpr-counter/但是,如果这种技术在下一个C++标准中是非法的(我希望不会),我想

c++ - 从容器中元素的成员函数中累积结果

我有一个类,有一个返回计数的函数,如下所示:classCTestClass{public://...size_tGetCount()const;//...};在我程序的某处,我有一个该类对象的vector。我有一个函数来获取总计数(CTestClass::GetCount()的结果总和),像普通循环一样实现:size_tsum=0;for(vector::const_iteratorit=v.begin();it!=v.end();++it){sum+=it->GetCount();}我想重构它以使用标准库中可用的设施,于是我想到了accumulate。我已经能够通过使用函数对象(简单

c++ - 如何在 O(logn) 中查找 STL 中元素的等级

我想在STL集中查找元素的等级。我能够从头遍历到那个元素并找出它的等级,但这需要O(n)。有什么方法可以在O(logn)中找到排名。 最佳答案 没有;平衡树不需要存储每个节点的后代数量,这需要更快地计算distance(s.begin(),iter)forstd::sets和迭代器iter(我猜你是这个意思)。因此,除非通过一项一项地计算,否则信息根本不存在。如果您需要执行许多此类计算,请将set复制到已排序的随机访问序列中,例如vector或deque,但随后修改序列变得昂贵。做你所要求的事情的树数据结构可能存在于某处的免费图书馆

如何测试聚合物中元素的存在?

我在聚合物组件中面临这个问题,无法找出我面临的位置。以下是我的代码:{{noDataMessage}}Polymer({is:'invoice-history',properties:{invoiceListHistory:Array},_isHistoryPresent:function(history){varhp=true;if(history){hp=history.every(function(invoice){returninvoice.txnStatus==null;});}else{this.message="historynotpresent";}return!hp;}});

c++ - std::vector<char> 中元素的字节对齐方式是什么?

我希望元素是1字节对齐的,类似于std::vector是4字节对齐的(或任何大小int恰好在特定平台上)。有谁知道标准库容器是如何对齐的? 最佳答案 容器的元素至少在该实现中具有它们所需的对齐方式:ifint在您的实现中是4对齐的,那么vector的每个元素是一个int因此是4对齐的。我说“如果”是因为大小和对齐要求之间存在差异-只是因为int就标准而言,大小为4并不一定意味着它必须是4对齐的。不过,这很常见,因为int通常是机器的字长,并且大多数机器在字边界上的内存访问方面具有优势。所以对齐int是有意义的即使这不是绝对必要的。例

c++ - 我应该返回一个迭代器还是一个指向 STL 容器中元素的指针?

我正在开发一个用于将现有代码移植到不同平台的引擎。现有代码是使用第三方API开发的,我的引擎将根据我的新平台重新定义这些第三方API函数。以下定义来自API:typedefunsignedlongshape_handle;shape_handlemake_new_shape(inttype);我需要重新定义make_new_shape并且我可以选择重新定义shape_handle。我已经定义了这个结构(简化):structShape{inttype};make_new_shape的调用者不关心Shape的底层结构,它只需要一个“句柄”,这样它就可以调用如下函数:void`set_sha

c++ - 动态内存分配

与数组中元素的普通分配相比,使用动态内存分配创建数组有什么优势? 最佳答案 您不必事先知道数组的大小,也不必为大型数组过度分配内存。这使您的程序可以更高效地使用内存。 关于c++-动态内存分配,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2311108/

c++ - Eclipse CDT 无法解析 STL 容器中元素的方法

我使用EclipseJuno和CDT来开发我的C++项目和自定义makefile。我也在使用C++11功能,我必须按照此处关于SO的建议使用Eclipse的解析器。问题是Eclipse无法解析在STL容器元素上访问的方法或字段。例如:mainapp.htypedefstruct_PlayerCalibrationData{[...]std::stringgetSamplesStr(){[...]}}PlayerCalibrationData;std::vectorm_calibrationData;mainapp.cppm_calibrationData[0].getSamplesSt

c++ - vector 中元素的默认构造

在阅读此question的答案时我对vector中对象的默认构造有疑问。为了测试它,我编写了以下测试代码:structTest{intm_n;Test();Test(constTest&t);Test&operator=(constTest&t);};Test::Test():m_n(0){}Test::Test(constTest&t){m_n=t.m_n;}Test&Test::operator=(constTest&t){m_n=t.m_n;return*this;}intmain(intargc,char*argv[]){std::vectora(10);for(inti=0;