Coca Touch中可以使用矢量嗎?如果是這樣,必須包括哪些圖書館?Cocoa Touch中的矢量/ Objective-C
我跟隨他們大致C教程中所需要的唯一的事情就是#include <vector>
但XCode中指出,有沒有這樣的文件或目錄。
任何指向提供此類功能的庫的指針都會受到讚賞。
問候 〜DHP
Coca Touch中可以使用矢量嗎?如果是這樣,必須包括哪些圖書館?Cocoa Touch中的矢量/ Objective-C
我跟隨他們大致C教程中所需要的唯一的事情就是#include <vector>
但XCode中指出,有沒有這樣的文件或目錄。
任何指向提供此類功能的庫的指針都會受到讚賞。
問候 〜DHP
我想通了......按照以下3個步驟:
.mm
#include "vector"
std::vector <<int>int> myVector(20);
instead of just using vector <<int>int> myVector(20);
現在你有一個全新的C++矢量工作在Objective-C中。
using namespace std; will remove the need f或者在向量之前指定名稱空間 – Stuartsoft 2014-05-24 22:03:24
是的,但是使用'using namespace std;'通常被認爲是不好的做法。 – Sohcahtoa82 2016-04-13 15:52:22
的Objective-C是C的超集,因此任何C的溫度將與他們合作。但是,std::vector
是一個C++類,這意味着編譯器必須意識到您要在程序中使用C,Objective-C 和 C++代碼。您可以將源文件的擴展名從.m
更改爲.mm
。但是,如果您仍處於學習Objective-C或C++的階段,請儘量不要將C++與它混合太多。 C++使用「非POD類型」(POD是「普通舊數據」),它本質上與帶有可變參數的函數不兼容;引擎蓋下,全部 Objective-C調用以這種方式工作,所以如果您不太清楚它是如何工作的,可以使通過Objective-C調用處理C++類型變得複雜。你也可以使用Cocoa的NSMutableArray
。
謝謝你的好評。我已經與ObjC合作了很長一段時間,但從來沒有需要進入C++(畢竟在生活中,並且在經過Basic/Pascal/Fortran/VB.Net/C#/ ObjC和最近的Java之後(就像我一樣進入安卓) 但畢竟是我還是害怕的C++ :( 順便說一句,這是我要玩庫: http://wiki.secondlife.com/wiki/Color_conversion_scripts 問候並再次感謝大時間 – 2010-08-12 18:30:15
@dhomes這些不是STL向量,而是一些第三方向量對象,語言也不像C語言,它們使用的大致相當於'struct vector {float x,y ,z;};'這就是POD,所以隨意把它放在Objective-C調用中 – zneak 2010-08-12 19:12:33
怎麼樣:
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++ std庫中的向量是一種數組,而不是空間中的數學觀點。 – phreakhead 2013-10-19 05:30:07
矢量由C++,不C.這有很大的影響的。 – zneak 2010-08-12 17:55:10
'#include'是C++,而不是C. –
nmichaels
2010-08-12 17:57:55