Cocoa-Touch/Objective-C中的向量

Cocoa-Touch/Objective-C中的向量,objective-c,cocoa,cocoa-touch,vector,Objective C,Cocoa,Cocoa Touch,Vector,可以在触摸屏中使用矢量吗?如果是,必须包括哪些库 我在遵循一个关于它们的通用C教程,唯一需要做的就是#包括 但是XCode声明没有这样的文件或目录 任何指向提供这种功能的库的指针都是值得赞赏的 问候 ~dhpObjective-C是C的超集,因此任何C都可以使用它们。但是,代码>:ST::vector < /Cord>是C++类,这意味着编译器必须意识到你将在程序中使用C、ObjuleC和C++代码。您可以将源文件的扩展名从.m更改为.mm 但是,如果你仍然处于学习Objto-C或C++的阶段,

可以在触摸屏中使用矢量吗?如果是,必须包括哪些库

我在遵循一个关于它们的通用C教程,唯一需要做的就是
#包括

但是XCode声明没有这样的文件或目录

任何指向提供这种功能的库的指针都是值得赞赏的

问候
~dhp

Objective-C是C的超集,因此任何C都可以使用它们。但是,<>代码>:ST::vector < /Cord>是C++类,这意味着编译器必须意识到你将在程序中使用C、ObjuleC和C++代码。您可以将源文件的扩展名从
.m
更改为
.mm


但是,如果你仍然处于学习Objto-C或C++的阶段,尽量不要把太多的C++和它混合在一起。C++使用“非POD类型”(POD是“普通的旧数据”),它本质上与采取变量参数的函数不兼容;在引擎盖下,所有Objy-C调用都是这样工作的,如果你不太确定它是如何工作的,那么通过Objy-C调用可以使C++变得复杂。你也可以使用Cocoa的

NSMutableArray
类。

我想出来了。。。按照以下3个步骤操作:

  • 使用
    扩展文件名.mm
  • #包括“向量”
  • 使用此代码:

  • std::vector myVector(20);
    而不是仅仅使用向量myVector(20);
    

    <>现在你有一个全新的C++向量在Objul-C.</P> < P> >:

    如何?
    struct Vector { float r, x, y, z; };
    typedef struct Vector Vector;
    
    CG_INLINE Vector
    VectorMake(CGFloat x, CGFloat y, CGFloat z)
    {
        Vector vector; vector.x = x; vector.y = y; vector.z = z;return vector;
    }
    

    向量是来自C++,而不是C。这有很多含义。<代码>包含< /代码>是C++,不是C。谢谢你们的伟大响应。我已经和Objc工作了相当长的时间,但从来没有需要进入C++(在生命中),在经历Basic、Pascal、Fortran、VB.NET/C++、O/Objc和最近的java(就像我进入Android)之后,我仍然害怕C++。(顺便说一句,这是我想玩的图书馆:再次表示问候和感谢time@dhomes这些不是STL向量,而是一些第三方向量对象。该语言看起来也不像C。它们使用的大致相当于
    struct vector{float x,y,z;}C++,这是一个POD,因此可以随意抛出ObjultC调用。C++中的STD库中的向量是一种数组,而不是你想的空间中的数学点。使用命名空间STD;在Vector中删除声明命名空间的必要性,但是使用<代码>使用命名空间STD;经常被认为是一种坏习惯。
    
    struct Vector { float r, x, y, z; };
    typedef struct Vector Vector;
    
    CG_INLINE Vector
    VectorMake(CGFloat x, CGFloat y, CGFloat z)
    {
        Vector vector; vector.x = x; vector.y = y; vector.z = z;return vector;
    }