问题列表 - 第22194页

Arduino的一些项目构想是什么?

Arduino的一些项目构想是什么?

(作为社区维基开始!)

embedded arduino

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

LINQ到对象优化技术?

你使用LINQ to Objects优化技术或者你在野外看到了什么?

在等待"产生foreach"和其他语言/编译器优化到201x中的C#时,我很有意思尽一切可能使LINQ在任何地方使用,而不是性能上的痛苦.

到目前为止,我看到的一种模式是为特定的组合器创建自定义的IEnumerable实现,这样可以多次重新枚举枚举.

optimization performance linq-to-objects

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

为什么Loki库没有被更广泛地使用?

洛基库实现了一些使用非常广泛的概念(智能指针,访客,工厂等).经常提到相关的书"现代C++设计",但图书馆本身并没有被广泛使用.这是为什么?

大多数开发人员似乎更喜欢Boost.特别是,为什么人们经常决定使用Boost的智能指针而不是Loki?

c++ boost loki

46
推荐指数
4
解决办法
1万
查看次数

CMake为Windows/Linux添加库

Visual Studio C++ 2008/GCC 4.4.2

我已经编写了一个在Linux上运行的程序,现在我必须将我的代码移植到Windows上运行.我决定使用CMake,因为我想为两个平台保持相同的构建系统.

但是,我需要链接两个平台的一些库.在我的CMakeLists.txt中,我有以下内容:

# Compile with gcc c89 standard
IF(CMAKE_COMPILER_IS_GNUCXX)
    MESSAGE(STATUS "GCC detected - Adding compiler flags")
    SET(CMAKE_C_FLAGS "-pthread -ggdb -Wextra -Wall -pedantic -std=c89")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)

IF(WIN32)
SET(CMAKE_C_FLAGS "ws2_32.lib")
ENDIF(WIN32)
Run Code Online (Sandbox Code Playgroud)

但是,当我在Visual Studio上编译时,我收到以下错误:

fatal error C1083: Cannot open source file: 'ws2_32.lib': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

=========编辑在顶级目录中

# Project Client Server
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

# Name of project
PROJECT(CLIENT_SERVER)

# Compile with gcc c89 standard
IF(CMAKE_COMPILER_IS_GNUCXX)
    MESSAGE(STATUS "GCC detected - Adding compiler flags")
    SET(CMAKE_C_FLAGS "-pthread -ggdb …
Run Code Online (Sandbox Code Playgroud)

cmake

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

按顺序排序MySQL结果?

当我使用IN从表中选择一组行时,例如

SELECT x.y, x.z FROM x WHERE x.id IN (23, 55, 44, 12)
Run Code Online (Sandbox Code Playgroud)

是否有一个SQL技巧让它们按照IN集中给出的顺序返回?

因此,在该示例中,假设x具有带有ID,55,54和12的行,则将按该顺序返回这四行.

mysql sql

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

在PHP json_decode()中检测错误的json数据?

我正在尝试通过json_decode()解析时处理错误的json数据.我正在使用以下脚本:

if(!json_decode($_POST)) {
  echo "bad json data!";
  exit;
}
Run Code Online (Sandbox Code Playgroud)

如果$ _POST等于:

'{ bar: "baz" }'
Run Code Online (Sandbox Code Playgroud)

然后json_decode处理错误并且吐出"坏的json数据!"; 但是,如果我将$ _POST设置为"无效数据"之类的东西,它会给我:

Warning: json_decode() expects parameter 1 to be string, array given in C:\server\www\myserver.dev\public_html\rivrUI\public_home\index.php  on line 6
bad json data!
Run Code Online (Sandbox Code Playgroud)

我是否需要编写自定义脚本来检测有效的json数据,还是有其他一些很好的方法来检测它?

php json

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

使用宏WIN32或_MSC_VER跨平台

我正在Linux(GCC 4.4.2)和Windows VS C++ Express Edition 2008下编译

我目前正在Windows XP Pro 32位下编译,并已将其添加到我的源代码中.

#if defined( WIN32 )
/* Do windows stuff here */
#endif
Run Code Online (Sandbox Code Playgroud)

但是,if语句中的代码被禁用(变灰).但是,如果我执行以下操作:

#if defined( _MSC_VER )
/* Do windows stuff here */
#endif
Run Code Online (Sandbox Code Playgroud)

if语句代码已启用.

我只是想知道,我应该使用什么.我见过很多程序员都使用WIN32.但是,似乎对我不起作用.我应该使用_MSC_VER吗?

非常感谢任何建议,

c

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

如何在没有_alloca的情况下编译GCC?

出于某种原因,我应该使用gcc编译一个C文件,然后链接Visual C++ 2008项目.

(我使用了当前最新的gcc版本:cygwin gcc 4.3.4 20090804.)

但是有一个问题:gcc总是用_alloca分配一个大数组,

和VC链接器无法解析符号__alloca.

例如,

int func()
{
    int big[10240];
    ....
}
Run Code Online (Sandbox Code Playgroud)

虽然我没有明确地调用_alloca函数,但此代码会产生_alloca依赖关系.

(数组大小很重要.如果我改变10240 - > 128,一切都好)

我尝试了gcc选项-fno-builtin-alloca或-fno-builtin,但没有运气.

有可能让gcc不使用_alloca吗?(或调整门槛?)

gcc alloca visual-c++

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

从线性探测转向二次探测(哈希碰撞)

我目前使用线性探测器的实现是使用线性探测,现在我想转向二次探测(以后再进行链接,也可能是双重哈希).我已经阅读了一些文章,教程,维基百科等...但我仍然不知道我应该做什么.

基本上,线性探测的步长为1,这很容易做到.当从哈希表中搜索,插入或删除元素时,我需要计算哈希值,为此我执行此操作:

index = hash_function(key) % table_size;
Run Code Online (Sandbox Code Playgroud)

然后,在搜索,插入或删除I循环通过表时,直到找到一个空闲桶,如下所示:

do {
    if(/* CHECK IF IT'S THE ELEMENT WE WANT */) {
        // FOUND ELEMENT

        return;
    } else {
        index = (index + 1) % table_size;
    }
while(/* LOOP UNTIL IT'S NECESSARY */);
Run Code Online (Sandbox Code Playgroud)

对于二次探测,我认为我需要做的是改变计算"索引"步长的方式,但这是我不明白应该怎么做的.我见过各种代码,而且所有代码都有所不同.

此外,我已经看到了一些Quadratic Probing的实现,其中哈希函数被改变为适应(但不是全部).是真的需要改变还是我可以避免修改散列函数并仍然使用二次探测?

编辑: 在阅读了以下Eli Bendersky指出的所有内容后,我想我得到了一般的想法.以下是http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_hashtable.aspx中代码的一部分:

15   for ( step = 1; table->table[h] != EMPTY; step++ ) {
16     if ( compare ( key, table->table[h] ) == 0 )
17       return 1;
18 
19     /* Move forward …
Run Code Online (Sandbox Code Playgroud)

c hashtable hash-collision quadratic-probing

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

为WinForm应用程序分配控制台

我使用以下代码为WinForm应用程序分配控制台.控制台窗口成功显示,输出就在那里.但是当我关闭控制台窗口时,我的WinForm应用程序同时关闭.为什么?我想保留WinForm窗口.

private void btn_to_console_Click(object sender, EventArgs e)
{
    if (NativeMethods.AllocConsole())
    {
        lbl_console_alloc_result.Text = "Console allocation successfully!";
        IntPtr stdHandle = NativeMethods.GetStdHandle(NativeMethods.STD_OUTPUT_HANDLE);
        Console.WriteLine("from WinForm to Console!");
        lbl_console_alloc_result.Text = Console.ReadLine();
    }
    else
        lbl_console_alloc_result.Text = "Console allocation failed!";
}

[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "GetStdHandle")]
public static extern System.IntPtr GetStdHandle(Int32 nStdHandle);

/// Return Type: BOOL->int
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "AllocConsole")]
[return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern bool AllocConsole();
Run Code Online (Sandbox Code Playgroud)

提前致谢...

c# operating-system

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