小编das*_*ght的帖子

swift中的指针:UnsafeMutableBufferPointer的目的

目前正在寻找快速指针.

UnsafePointerUnsafeMutablePointer提供指向字节的指针.通过使用指针运算,您可以访问其余的字节.

类似的东西可以用a来完成UnsafeMutableBufferPointer,它有一个endIndex参数.那么在访问例如字节时使用UnsafeMutableBufferPointerover 的优点/区别是什么?UnsafeMutablePointerNSData

pointers swift

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

锁定java - 乐观与悲观

我只是想了解乐观和悲观的锁定机制,并在https://en.wikipedia.org/wiki/Lock_(database)中找到了它们的定义

如果我尝试将概念与java而不是数据库联系起来,我是否正确地说同步使用始终是悲观的并且CAS(AtomicInteger和其他类)的使用始终是乐观的?

java locking

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

合并不等长度的排序数组

我有一个项目要求我合并两个排序的数组(a和b),并将结果放在一个长度为a.length + b.length的新数组中.我正在跟踪所有3个数组中我的位置的计数器,并且我的数组的长度是不相等的.我的约定是,如果一个数组在另一个数组之前耗尽,则代码将把另一个数组的其余部分转储到结果数组中.

不幸的是,我可以检查其他数组是否仍包含元素的唯一方法是for循环.

谁能帮我?这应该是一个相对容易的解决方案,但我想不出解决方案.

public class Two {
    public static void main(String[] args) {
        //sample problem
        int[] var_a = {2,3,5,5,8,10,11,17,18,20}; 
        int[] var_b = {5,6,7,8,14,15,17};
        final int a_size = 10;
        final int b_size = 7;
        final int c_size = 17; 
        int[] var_c = new int[17];

        int aCount = 0;
        int bCount = 0;
        int cCount = 0;
        for (cCount = 0; cCount < c_size; cCount++) {
            //b runs out before a runs out
            if ((bCount == b_size) && (aCount <= …
Run Code Online (Sandbox Code Playgroud)

java merge mergesort

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

如何对BIT(...)数据类型列使用substr(...)?

我有这张桌子:

// numbers
+---------+------------+
|    id   |    numb    |
+---------+------------+
| int(11) |   bit(10)  |
+---------+------------+
| 1       | 1001100111 |
| 2       | 0111000101 |
| 3       | 0001101010 |
| 4       | 1111111011 |
+---------+------------+
Run Code Online (Sandbox Code Playgroud)

现在我想从这些数字中获得第三位数(从左到右).例:

1001100111
  ^ // I want to get 0
Run Code Online (Sandbox Code Playgroud)

所以预期的结果是:

+--------------------+
| substr(numb, 3, 1) |
+--------------------+
| 0                  |
| 1                  |
| 0                  |
| 1                  |
+--------------------+
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

SELECT SUBSTR(numb, 3, 1) FROM numbers
Run Code Online (Sandbox Code Playgroud)

但它不起作用.因为bit(10)不是字符串而SUBSTR() …

mysql sql

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

在哪里实现Swift协议?

在Swift中实现协议一致性时我有两个选择,结果相同:

  • 在类中实现协议 - 也就是说,在类定义的顶部声明一致性,并将实现放在类主体中,或者
  • 在扩展中实现协议 - 即完全在类外编写协议一致性.

这是一个例子:

public class MyClass : CustomDebugStringConvertible {
    ... // Something
    public var debugDescription : String {
        return "MyClass"
    }
}
Run Code Online (Sandbox Code Playgroud)

class MyClass {
    ... // Something
}
extension MyClass : CustomDebugStringConvertible {
    public var debugDescription: String {
        return "MyClass"
    }
}
Run Code Online (Sandbox Code Playgroud)

Swift书中的代码示例倾向于集中于第一种方法; Apple的Swift核心源代码显示他们只使用第二种方法(参见BoolOptional举例说明).

是否有一种合理的方法可以根据情况决定两种方法,还是仅仅是编码偏好的问题?

protocols swift

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

c#中的SQL Server二进制文件(16)

我有一个包含一些列的表:1.nvarchar(30),2.int,3.binary(16).现在,在c#中我有一个代表那些列的类:

public string aaa { get; set; }
public int bbb { get; set; }
Run Code Online (Sandbox Code Playgroud)

我怎么写第三个(二进制(16))?

c# sql-server

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

何处/如何在OpenCV中放置构建文件

我刚刚开始使用OpenCV,我有以下示例.cpp文件(来自opencv.org):

#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main( int argc, char** argv )
{
    Mat image;
    image = imread( argv[1], 1 );

    if( argc != 2 || !image.data )
    {
        printf( "No image data \n" );
        return -1;
    }

    namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
    imshow( "Display Image", image );

    waitKey(0);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我有以下CMakeList.cmake文件:

project(opencvTEST)
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

find_package(OpenCV REQUIRED)

# Project Executable
add_executable (test test.cpp)
target_link_libraries(test ${OpenCV_LIBS})
Run Code Online (Sandbox Code Playgroud)

我有一台Mac(OS 10.6.8),我已经用CMake安装了OpenCV 2.4.3,我搜索了高低,并尝试了很多不同的东西来让这个测试程序编译(我正在使用命令line - 没有IDE),但是我得到以下编译错误(显然,由于include语句不能正常工作):

test.cpp:3:30: error: opencv2/opencv.hpp: …
Run Code Online (Sandbox Code Playgroud)

c++ opencv cmake

5
推荐指数
2
解决办法
5886
查看次数

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

在c中访问数组的-1元素

我有一个结构数组,它是动态分配的.指向此数组的指针将传递给其他函数.

struct body{
    char* name; 
    double mass; 
    // ... some more stuff
    };

 body *bodies = malloc(Number_of_bodies*sizeof(body));
Run Code Online (Sandbox Code Playgroud)

我需要知道数组的大小,所以我将大小存储在其中一个结构中,它位于数组的第0个元素(第一个结构)中.

bodies[0].mass = (double)Number_of_bodies;
Run Code Online (Sandbox Code Playgroud)

然后我从函数返回一个指向数组的第一个元素的指针,即 bodies[1]

  return (bodies+1); 
Run Code Online (Sandbox Code Playgroud)

现在,当我在其他函数中使用此指针时,数据应该从第0个元素开始.

  body *new_bodies = (bodies+1);     //Just trying to show what happens effectively when i pass to another function
  new_bodies[0] = *(bodies+1);       //I Think
Run Code Online (Sandbox Code Playgroud)

如果我想看到初始结构,那是bodies[0]什么意思,在我必须访问的其他函数中意味着new_bodies[-1]什么?

这是我能做的吗?我如何访问初始结构?

c arrays struct pointers dynamic

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

Java,会(低+高)&gt;&gt;&gt; 1 溢出吗?

我在看 Java 1.8 Api。在 中java.util.Arrays.binarySearch(int[] a, int key),我找到了这段代码。

int low = fromIndex;
int high = toIndex - 1;

while (low <= high) {
    int mid = (low + high) >>> 1;
    int midVal = a[mid];

    if (midVal < key)
        low = mid + 1;
    else if (midVal > key)
        high = mid - 1;
    else
        return mid; // key found
}
return -(low + 1);  // key not found.
Run Code Online (Sandbox Code Playgroud)

在这段代码中(low + high) >>> 1不会溢出。谁能告诉我为什么会这样?我用我自己的代码测试它。

int low …
Run Code Online (Sandbox Code Playgroud)

java overflow

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

标签 统计

java ×3

pointers ×2

swift ×2

.net ×1

arrays ×1

bits ×1

byte ×1

c ×1

c# ×1

c++ ×1

cmake ×1

dynamic ×1

locking ×1

merge ×1

mergesort ×1

mysql ×1

opencv ×1

overflow ×1

protocols ×1

sql ×1

sql-server ×1

struct ×1