小编Mar*_*ote的帖子

std :: vector元素是否保证是连续的?

我的问题很简单:std :: vector元素是否保证是连续的?在order word中,我可以使用指向std :: vector的第一个元素的指针作为C数组吗?

如果我的记忆力很好,那么C++标准就没有这样的保证.但是,如果元素不连续,那么std :: vector要求几乎不可能满足它们.

有人可以澄清一下吗?

例:

std::vector<int> values;
// ... fill up values

if( !values.empty() )
{
    int *array = &values[0];
    for( int i = 0; i < values.size(); ++i )
    {
        int v = array[i];
        // do something with 'v'
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ standards vector

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

如何在elisp'if'语句中编写多个语句?

在elisp中,有一个'if'的情况,我希望执行许多不同的事情:

(if condition
    (do-something)
    (do-something-else)
    ...)
Run Code Online (Sandbox Code Playgroud)

但是,(do-something-else)仅在else-case中执行.如何指定要执行的指令块?例如:

(if condition
    (begin
        (do-something)
        (do-something-else)
        ...))
Run Code Online (Sandbox Code Playgroud)

syntax elisp

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

如何在xcconfig变量中追加值?

我正在使用Xcode和.xcconfig文件.我试图在预处理器定义中附加一些值,但我根本无法使它工作.

我尝试了以下(以及此的许多变体),但到目前为止没有运气:

GCC_PREPROCESSOR_DEFINITIONS = '$(GCC_PREPROCESSOR_DEFINITIONS) NEW_VALUE'

NEW_VALUE符号根本不会添加到预处理器定义中.

有没有人成功地将新值附加到xcconfig文件中的变量?

xcode xcconfig

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

Emacs全球集合C-TAB的关键

我正在尝试在Emacs中设置一个键绑定到Ctrl + TAB.我用了以下电话:

(global-set-key (read-kbd-macro "C-TAB") 'my-func)
Run Code Online (Sandbox Code Playgroud)

但是,每当我使用它时,我都会得到一个

<C-tab> is undefined
Run Code Online (Sandbox Code Playgroud)

错误信息.尝试将绑定设置为"C-tab"会导致出现错误消息.

如何设置我对C-TAB的绑定?

emacs key-bindings

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

为什么我们甚至需要"delete []"运算符?

这个问题一直困扰着我.我一直认为C++应该被设计成使"删除"操作符(没有括号)即使使用"new []"运算符也能工作.

在我看来,写这个:

int* p = new int;
Run Code Online (Sandbox Code Playgroud)

应该相当于分配1个元素的数组:

int* p = new int[1];
Run Code Online (Sandbox Code Playgroud)

如果这是真的,"删除"运算符可能总是删除数组,我们不需要"delete []"运算符.

是否有任何理由在C++中引入"delete []"运算符?我能想到的唯一原因是分配数组的内存占用量很小(你必须在某处存储数组大小),因此区分"delete"与"delete []"是一个很小的内存优化.

c++ memory-management heap-memory

32
推荐指数
4
解决办法
5135
查看次数

是什么原因导致在SQLite中创建日志文件?

我开始注意到我的iPhone应用程序的SQLite查询有一种奇怪的行为.每当我执行"INSERT"语句时,都会在我的db文件旁边创建一个日志文件(确切的文件名是"userdata.db-journal").

如果我正确理解了文档,那么SQLite将使用此日志文件在操作失败时能够回滚.但是操作完成后文件仍保留在那里.

我做了准备,绑定和执行查询的经典步骤(为简单起见,不检查返回值):

sqlite3 *db = NULL;
sqlite3_open( "userdata.db", &db );

sqlite3_stmt *insertStmt = NULL;
const char *query = "INSERT INTO table VALUES(?,?)";
sqlite3_prepare_v2( db, query, -1, &insertStmt, NULL );

sqlite3_bind_int( insertStmt, 1, 0 );
sqlite3_bind_int( insertStmt, 2, 0 );

sqlite3_step( insertStmt );

sqlite3_reset( insertStmt );
sqlite3_clear_bindings( insertStmt );

sqlite3_close( db );
Run Code Online (Sandbox Code Playgroud)

日志文件是在调用'sqlite3_step'函数后创建的,并保持不变直到关闭数据库.我需要做些什么才能让它消失?

sqlite iphone

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

Interface Builder和Xcode集成无法正常工作

安装iPhone SDK 3.1.2后,Interface Builder不再与Xcode同步.XIB窗口底部的指示灯为灰色.IB没有看到Xcode项目中的任何文件.当我开始IB时,Xcode总是打开的.

我试过重启.没运气.
我尝试删除Xcode/IB的首选项文件.没运气.
我尝试重新安装Xcode/IB.仍然没有运气.

本页介绍IB如何监控Xcode中的更改.虽然这是一个有趣的阅读,但它没有提供任何有关如何调查我的问题的帮助.

任何帮助,将不胜感激.

编辑
这里有更多信息.我为launchd启用了调试日志,我注意到每次启动Interface Builder时都会出现以下行:

[0x0-0x1b01b].com.apple.InterfaceBuilder3[315]: Couldn't open shared capabilities memory GSCapabilities (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

这似乎与我的问题有关.

xcode rpc interface-builder

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

Xcode内置片段编辑

有没有办法编辑Xcode的内置代码片段?有一个编辑按钮,但按下它似乎不允许更改片段的文本.

任何见解都表示赞赏.

xcode code-snippets

22
推荐指数
4
解决办法
5765
查看次数

为iPhone创建静态库

有一个开源库,我想用于我的iPhone应用程序.该库是用C语言编写的,并使用Makefile编译.我想使用静态库.

如果我将.a文件添加到我的项目依赖项中,它可以很好地与模拟器一起使用,但是在定位iPhone SDK时它不会链接(当然因为.a文件是为Intel平台编译的).

我应该使用哪些GCC编译器标志来编译iPhone SDK的静态库?我认为'-arch'选项会为我提供一个iPhone架构,但没有运气.

任何帮助,将不胜感激.

iphone xcode static-libraries

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

Xcode:如何使用多个xcconfig文件设置调试环境?

我正在使用Xcode 3.2和xcconfig文件.文件按目标组织.例如,我有一个debug.xcconfig文件和一个文件release.xcconfig.两者都使用通用设置,因此我添加了shared.xcconfig两个包含的文件.

shared.xcconfig文件如下所示:

GCC_C_LANGUAGE_STANDARD = c99
GCC_WARN_ABOUT_RETURN_TYPE = YES
GCC_WARN_UNUSED_VARIABLE = YES
GCC_PREPROCESSOR_DEFINITIONS = SOME_COMMON_DEFINITIONS
Run Code Online (Sandbox Code Playgroud)

debug.xcconfig文件如下所示:

#include "Shared.xcconfig"
GCC_OPTIMIZATION_LEVEL = 0
Run Code Online (Sandbox Code Playgroud)

现在,我想DEBUGdebug.xcconfig文件中添加预处理器定义.如此问题所示,以下方法应该起作用:

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"
Run Code Online (Sandbox Code Playgroud)

这在Xcode 3.2中不起作用.Xcode文档还明确提到修改变量是不可能的,你只能覆盖它们.

你们怎么解决这个问题?

xcode xcconfig

15
推荐指数
2
解决办法
9157
查看次数