小编Bo *_*son的帖子

不理解C标准中的位字段描述

"字段是否可以重叠单词bounday是实现定义的.字段不需要命名;未命名的字段(仅冒号和宽度)用于填充.特殊宽度0可用于强制在下一个字边界处对齐. "

我无法得到这些线条.你能解释一下吗?

c

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

如何在Visual Studio C++项目中包含<sys/select.h>库?

我是Visual Studio的初学者,现在我想在其上运行C++程序,但是当我编译程序时,会出现一个<sys/select.h>未定义的错误.

那么,我该如何定义它或将其包含在项目中呢?

c++ shared-libraries static-libraries visual-c++

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

使用if else的对象比较| 运算符重载

我有compare(>,<,==) 两个class object基于不同的标准,如下所述.

class Student
{
    int iRollNumber;
    int iSection;
    int iMarks;
}
Run Code Online (Sandbox Code Playgroud)
  1. 我想与iRollNumber, iSection, iMarks(独立)进行比较.
  2. 我想和iRollNumber, iSection(合并)做比较.
  3. 我想和iMarks, iSection(合并)做比较.
  4. ..........

目前我正在实现这一点GetMethods()并使用if elseif elseif..结构进行比较.

这导致到处乱码!

如果我使用operator overloading我必须决定一种比较方式.

请建议一种优雅的编码方式.

要么

是否可以调用运算符重载多态?

c++ comparison operator-overloading

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

矢量矢量的初始化非常慢

我有一个向量的向量,我试图初始化它如下:

vector<vector<float> > matrix(numberOfRows, vector<float> (numberOfCols));
Run Code Online (Sandbox Code Playgroud)

但这行约为0.89,其中numberOfRows和numberOfCols为:

const uint32_t numRows = 10000;
const uint32_t numCols = 20000;
Run Code Online (Sandbox Code Playgroud)

而使用以下代码初始化动态数组需要0.04秒来执行:

float **matrix = new float*[numberOfRows];
for (size_t i = 0; i < numberOfRows; ++i)
    matrix[i] = new float[numberOfCols];
Run Code Online (Sandbox Code Playgroud)

我做错了有没有更快的方法来初始化该向量?

编辑:

至于问题:

我使用g ++ - 4.5来测试使用默认标准的O3优化级别.

c++ performance initialization vector

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

我可以重写Dispose来创建一个总是调用SaveChanges的实体类吗?

这是一个相当不错的观点,我希望答案是"开始时并不是一个好主意" - 也就是说,如果某人有点放纵,它有一个我感兴趣的点.

型号代码:

public partial class MyEntities : ObjectContext
{
    // the idea is if the object is in a using block, this always gets called?
    protected override void Dispose(bool disposing)
    {
        this.SaveChanges();
        base.Dispose(disposing);
    }
}
Run Code Online (Sandbox Code Playgroud)

客户代码:

using(var model = new MyEntities())
{
   // do something

   // no worry about calling model.SaveChanges()
}
Run Code Online (Sandbox Code Playgroud)

我不确定的问题是:

  1. 处置正确的地方是因为我出于某种原因想到"终结" - 我总是对C#破坏感到困惑.

  2. 在客户端代码中抛出异常的情况下,通常会跳过SaveChanges并且这很好,但是如果我认为这是有效的,那么它总是会调用它.我应该尝试空捕获吗?

    public partial class MyEntities : ObjectContext
    {
        protected override void Dispose(bool disposing)
        {
            try
            {
               this.SaveChanges();
            }
            catch {}
            base.Dispose(disposing);
        } …
    Run Code Online (Sandbox Code Playgroud)

c# finalizer object-lifetime

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

如何根据对象的属性比较两个NSSets?

我有两个nssets.

nsset1: person.id = 1, person.id = 2, person.id = 3
nsset2: person.id = 1, person.id = 2
Run Code Online (Sandbox Code Playgroud)

结果应该是:

nsset1 - nsset2: person (with id 3)
nsset2 - nsset1: null
Run Code Online (Sandbox Code Playgroud)

这两个集中具有相同id的对象是不同的对象,所以我不能简单地做minusSet.

我想做的事情如下:

nsset1: person.id = 1, person.id = 2, person.id = 3
nsset2: person.id = 4, person.id = 5
Run Code Online (Sandbox Code Playgroud)

结果应该是这样的:

nsset1 - nsset2: person (id 1), person (id 2), person (id 3)
nsset2 - nsset1: person (id 4), person (id 5)
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

iphone objective-c nsset ipad ios

3
推荐指数
2
解决办法
4684
查看次数

从AVAssetReaderOutput读取数据时,iOS 5.0崩溃

我有这段代码用于从中读取数据AVAssetReaderOutput,该方法在iOS 4.0中运行良好,但是在5.0中它以最糟糕的访问方式崩溃,不知道为什么,任何人都有任何输入?

AVAssetReaderOutput *output=[myOutputs objectAtIndex:0];
 int totalBuff=0;
while(TRUE)
{
     CMSampleBufferRef ref=[output copyNextSampleBuffer];
    if(ref==NULL)
        break;
    //copy data to file
    //read next one
    AudioBufferList audioBufferList;
    NSMutableData *data=[[NSMutableData alloc] init];
    CMBlockBufferRef blockBuffer;
    CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(ref, NULL, &audioBufferList, sizeof(audioBufferList), NULL, NULL, 0, &blockBuffer);

for( int y=0; y<audioBufferList.mNumberBuffers; y++ )
{
    AudioBuffer audioBuffer = audioBufferList.mBuffers[y];
    Float32 *frame = audioBuffer.mData;


    NSLog(@"Gonna write %d", audioBuffer.mDataByteSize);
    //crashes here
    [data appendBytes:frame length:audioBuffer.mDataByteSize];



}

totalBuff++;
CFRelease(blockBuffer);
CFRelease(ref);


   [fileHandle writeData:data];
    [data release];
}
Run Code Online (Sandbox Code Playgroud)

谢谢

丹尼尔

iphone audio avfoundation ios ios5

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

在asp.net中向TextBox添加格式

我需要格式化一个asp.net文本框,使它只接受用户输入的形式

### - ### - ### (#:仅限数字).

建议或答案请.

c# asp.net validation maskedtextbox

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

用fscanf或fgets忽略空格?

我想知道是否有任何方法可以忽略fscanf或fgets函数的空格.我的文本文件在每一行上有两个字符,可以用空格分隔,也可以不用空格分隔.我需要读取两个字符并将每个字符放在不同的数组中.

file = fopen(argv[1], "r");
if ((file = fopen(argv[1], "r")) == NULL) {
    printf("\nError opening file");
}
while (fscanf(file, "%s", str) != EOF) {
    printf("\n%s", str);
    vertexArray[i].label = str[0];
    dirc[i] = str[1];
    i += 1;
}
Run Code Online (Sandbox Code Playgroud)

c scanf fgets

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

为什么这些连续的宏替换不会导致错误?

该程序将输出设为5.但是在替换所有宏之后,它将导致--5.这应该导致编译错误,试图减少5.但它编译并运行良好.

#include <stdio.h>
#define A -B
#define B -C
#define C 5

int main()
{
    printf("The value of A is %d\n", A); 
    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

为什么没有错误?

c macros

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