草庐IT

sized_uint

全部标签

c++ - 为什么 `uint64_t` 的模板特化与 Mac 平台上的 `unsigned long` 不匹配?

这个问题在这里已经有了答案:longlongintvs.longintvs.int64_tinC++(3个答案)关闭3年前。为什么以下代码片段在Mac平台上使用clang++编译失败?sizeofunsignedlong和uint64_t都是8,所以我认为它们是同一类型。那么为什么编译认为Serializer是抽象的吗?因为我定义了Serializer,Serializer,Serializer,Serializer,Serializer,Serializer,Serializer,Serializer,有没有办法解决这个问题并避免定义更多类型,如Serializer?错误信息如下,c

c++ - vector.size() 的 GDB 错误值

一个简单的vector.push_back()导致我的代码出现一些错误:#includeusingnamespacestd;intmain(intargc,constchar*argv[]){vectorstack;stack.push_back(1);stack.push_back(1);//stack.size()becomes467369971afterthisstack.push_back(1);stack.push_back(1);...morepush_back()s...return0;}我正在使用GDB检查它的行为...奇怪的是stack.size()在第二个push_

c++ - 如何将 64 位地址的 std::string 表示形式转换为 uint64_t?

我有一个std::string表示一个64位内存地址,采用little-endian,十六进制形式。如何将其转换为uint64_t表示形式? 最佳答案 #include#include#include#include#includeintmain(){std::strings("0x12345");std::stringstreamstrm(s);std::uint64_tn;strm>>std::hex>>n;std::cout这会按预期打印12345。编辑:如果你想从小端转换为大端,那也是可能的:#include#include

c++ - OpenCV 错误 : Sizes of input arguments do not match (The operation is neither 'array op array' )

我正在做一个在树莓派上使用opencv的项目。我遇到了一个看起来很简单的障碍,但我无法解决问题。首先,这是我的代码的一部分:{gray=cvarrToMat(py);///cvShowImage("camcvWin",py);//displayonlygraychannelif(img_num%2==1){cv::imwrite("/home/pi/test/Gray_2Image1.jpg",gray);}elseif(img_num%2==0){cv::imwrite("/home/pi/test/Gray_2Image2.jpg",gray);cv::Matimg2=cv::im

c++ - 有人可以解释使用库 <stdint.h> 中的 uint32_t 的意义吗?

我最近在codechef上看到有人使用这种变量类型和库的代码。我想知道是否有人可以解释使用uint32_t相对于int、float、double等的好处.还有什么情况下应该用/不应该用?代码链接:http://www.codechef.com/viewsolution/131898 最佳答案 优点是uint32_t始终保证为32位长,这与长度取决于平台的原始类型相反。例如,虽然int在x86和x86_64上是32位的,但它们在许多其他64位平台上是64位的,并且比一些旧的和/或嵌入式架构上的要少。使用uint32_t可能有益的情况之

c++ - Visual Studio 2010 C++ : malloc()/HeapAlloc always allocates new page for even smallest alloc size

我有一个相当大的C/C++项目,我一直在试图找出它消耗过多内存的原因(通过任务管理器中的“工作集”判断)。我终于找到了奇怪的行为,即使是最小的malloc()请求,它也会分配一个全新的4k页面。像这样的代码for(intbla=0;bla这应该会增加区区10KB的内存消耗,最终会增加4MB,因为它分配了1000个4kB。真正令人沮丧的部分是我无法将其作为独立文件重现。仅包含上述代码的小型应用程序就可以正常工作。只有大项目才会表现出错误的行为。直接回答一些明显的建议:我正在引入与大项目相同的库,并确保编译标志相同"new"的行为方式相同在Debug和Release模式下都会发生我真的追踪

c++ - 我应该如何在恒定长度的 STL 样式数据结构中实现 max_size?

假设我实现了一个类似于动态数组的常量数据结构。即,我给数据结构一个长度l在构造函数中。然后,该数据结构的实例将永远无法容纳比l更多的元素。.我希望该数据结构具有尽可能接近STL的接口(interface)。我应该如何实现max_size这个类的方法?应该是容量l在构造函数中给出?或者应该是std::numeric_limits::max()?此方法的文档说:Returnsthemaximumnumberofelementsthecontainerisabletoholdduetosystemorlibraryimplementationlimitations,i.e.std::dist

c++ - Eigen 与 -O3 警告 : argument 1 value ‘X’ exceeds maximum object size Y

发生了什么当我按照教程onEigenwebsite尝试将Eigen::Vector3f添加到std::vector中时像这样:#include#include#includetemplateusingEigenStdVector=std::vector>;intmain(){EigenStdVectorvec;vec.emplace_back(1.0f,1.0f,1.0f);std::cerr我收到以下警告:Infileincludedfrom/usr/include/eigen3/Eigen/Core:349:0,from/home/igor/Code/eigen_example/e

c++ - 你能自动写两个 uint64_t 吗?

我有一个问题,我需要能够自动更新两个uint64_t的同时。以原子方式编写它们中的每一个是很容易的(例如,有两个std::atomic的),但这仍然会导致更新一个而另一个不更新的情况。使用锁和互斥锁也很容易实现。但我想以原子方式编写,没有任何类型的锁,这样我仍然可以拥有类型为uint64_t的成员变量。这样就不会锁定读取。这是因为我的用例涉及读取它们很多很多次,但很少写入它们(~读取1x/ms,写入1x/5分钟)。可能吗?如果是这样,如何? 最佳答案 对于std::atomic标准说(强调我的)Theprimarystd::atom

c++ - Vector size() 返回看似随机的大整数

我正在编写一个作业程序,遇到了一个奇怪的问题。当尝试使用size()函数获取二维vector的大小时,我得到看似随机的大整数,这使我的程序无法运行。我需要大小来访问vector中的元素。我的头文件:#ifndef_MATRIX_H#define_MATRIX_H#include#includeclassMatrix{private://intdimension;std::vector>matrix;public:Matrix();Matrix(std::vector>);voidprint();Matrixoperator-(Matrixoperand);};#endif我的实现文件: