问题列表 - 第50008页

什么时候std :: vector重新分配它的内存数组?

我找不到任何可以给出明确答案的东西.我只是好奇,如果std :: vector只在绝对必须时重新分配它的内部数组,或者它会在预期中提前重新分配(可以这么说).

例如:

std::vector<int> myVector;
for (int i = 0; i < 1000; ++i) myVector.push_back(i);

cout << myVector.size() << '\n'      // Gives 1000 as expected
     << myVector.capacity() << endl; // Gives 1024 which makes sense
Run Code Online (Sandbox Code Playgroud)

如果我继续添加元素,是否有可能我添加的下24个项目中的一个会改变容量,或者只有在我放入第25个项目后它才会重新分配?

注意:

我在Linux下使用gcc 4.4.3进行了测试,但似乎重新分配是"按需"完成的,但我很好奇我是不是很幸运,或者有什么东西说明这是预期的行为.

c++ stl vector

12
推荐指数
3
解决办法
1万
查看次数

C#使用反射获取不安全结构中的固定字段类型

我正在尝试使用一些固定字段来获取不安全结构的字段类型.固定字段FieldType不返回实际类型.

[StructLayout(LayoutKind.Sequential, Pack = 1)]
public unsafe struct MyStruct
{
   public UInt32 Field1;
   public fixed sbyte Field2[10];
   public UInt64 Field3;
}

void Test() 
{
   var theStruct = new MyStruct();
   string output = "";
   foreach (FieldInfo fi in theStruct.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance))
   {
      output += fi.Name + ": " + fi.FieldType.ToString() + "\r\n";
   }

}
Run Code Online (Sandbox Code Playgroud)

输出:

字段1: System.UInt32

字段2: TestProjectNS.MyStruct+<Field2>e__FixedBuffer0

字段3: System.UInt64


我正在寻找Field2告诉我它sbyte而不是TestProjectNS.MyStruct+<Field2>e__FixedBuffer0

c# reflection unsafe

11
推荐指数
1
解决办法
2745
查看次数

在C#中等效的Java RuntimeException?

C#是否具有Java的java.lang.RuntimeException等价物?

(IE是一个异常,可以在不必被捕获的情况下抛出,或者在抛出异常时程序崩溃.)

.net exception-handling runtimeexception c#-3.0

27
推荐指数
1
解决办法
2万
查看次数

将Ajax.BeginForm与ASP.NET MVC 3 Razor一起使用

是否存在Ajax.BeginForm在Asp.net MVC 3中使用的教程或代码示例,其中存在不显眼的验证和Ajax?

对于MVC 3来说,这是一个难以捉摸的话题,我似乎无法让我的表单正常工作.它将执行Ajax提交但忽略验证错误.

asp.net-mvc asp.net-mvc-3

261
推荐指数
5
解决办法
34万
查看次数

26
推荐指数
4
解决办法
5万
查看次数

HTML5画布鼠标滚轮事件

我似乎无法在Firefox的HTML5画布中获取onMouseWheel事件.以下代码段在Chrome和IE9中按预期工作,但在Firefox中我只收到click事件:

<!DOCTYPE html>
<html>
<body>
<canvas id="TestCanvas" tabindex="2" onmousewheel="window.alert('wheel!')" onclick="window.alert('click!')" style="width:90%;height:90%;margin-left:auto;margin-right:auto border:1px solid green;"></canvas>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

根据我见过的规范,onMouseWheel应该是HTML5元素的标准事件.难道我做错了什么?

firefox html5 canvas

8
推荐指数
1
解决办法
6827
查看次数

"将控制器推到另一个控制器上"是什么意思?

我有一个FirstViewController是我的根导航控制器.我有一个撰写按钮,我想在点击时以模态方式显示TTMessage Composer .这很好用.

问题是没有导航栏来取消作曲家,所以我必须添加一个.

这是如何在没有导航栏的情况下通过仅以模态方式呈现消息编写器(TTMessageController).

在此输入图像描述

我从三个谷歌组中找到了这个:

在显示消息控制器之前,您必须创建一个导航控制器,将消息控制器推到其上,然后以模态方式显示导航控制器.

这似乎是我的问题的解决方案,但我不明白.任何人都可以用一点代码来解释它吗?我现在从对象面板导航控制器,我可以将它拖到我的nib文件上,但在这种情况下它是什么意思?什么意思是"推"?

iphone xcode three20

1
推荐指数
1
解决办法
229
查看次数

如何正确清理AVCaptureSession和AVCaptureVideoPreviewLayer

我正在使用AVFoundation api来创建相机预览视图,我在完成后无法清理.

我发现这个问题的最佳答案是在这个SO线程中,谢谢Codo.

但是,他没有解决AVCaptureVideoPreviewLayer的重新分配问题,而这正是我遇到麻烦的地方.

在我的视图控制器类中,我在startCameraCapture方法中有一些初始化代码.听Codo的回答,我正在使用dispatch_set_finalizer_f(_captureQueue, capture_cleanup);注册队列真正关闭时调用的回调.我也保留自己,以确保在调用我的对象完成队列之前我的对象不会消失.然后我使用capture_cleanup回调来释放self.

-(void) startCameraCapture {
    _camSession = [[AVCaptureSession alloc] init];
    if (_previewLayer == nil) {
        _previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:_camSession];
    }
    _previewLayer.frame = self.compView.bgView.frame;   
    [self.compView.bgView.layer addSublayer:_previewLayer];

    // Get the default camera device
    AVCaptureDevice* camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    // Create a AVCaptureInput with the camera device
    NSError *error=nil;
    AVCaptureInput* cameraInput = [[AVCaptureDeviceInput alloc] initWithDevice:camera error:&error];
    if (cameraInput == nil) {
        NSLog(@"Error to create camera capture:%@",error);

    }

    AVCaptureVideoDataOutput* videoOutput = [[[AVCaptureVideoDataOutput alloc] init] autorelease];

    // …
Run Code Online (Sandbox Code Playgroud)

ios4 ios

7
推荐指数
1
解决办法
6356
查看次数

是否有广泛可用的Java的NavigableMap接口的C++版本?

在Java中,您可以使用NavigableMap,它允许您执行诸如"查找小于或等于给定值的最大键"(floorKey方法)等有用的内容.因此,如果myMap包含{1 - >"One",2 - >"Two",3 - >"Three",7 - >"Seven"},您可以调用myMap.floorKey(6)并返回键3.

在C++中,STL提供了一个map类,默认情况下会根据升序键值顺序对条目进行排序.这很好,但是如何在C++中执行类似于floorKey的操作呢?到目前为止我发现的所有引用都建议你必须手动完成(即定义一个迭代器,收敛于密钥 - 最好使用二进制搜索,然后找到下一个下键).有没有广泛可用的库函数可以做到这一点?

c++ java sorting stl map

3
推荐指数
1
解决办法
672
查看次数

用4个顶点计算面法线

我似乎无法找到用于计算3D中4个顶点平面的法线的等式.给定4个顶点,(x1,y1,z1),(x2,y2,z2)等.如何计算它们创建的曲面的法线?我理解它如何使用三角形函数,但我不知道如何使它适应4个顶点

opengl plane vertex

3
推荐指数
1
解决办法
2390
查看次数