2013-07-23 3 views
0

Visual Studio 2005 C++에서 가능하면 클래스 개체의 ArrayList를 만들 수 있는지 알고 싶습니다. C#에서클래스에서 개체 ArrayList 만들기

class var 
{ 
    int x; 
    int y; 
} 

이 같은 것입니다 :

나는이 수업을해야합니다 ArrayList<var> list = new ArrayList<var>();하지만 C++에서는 작동하지 않습니다.

프로젝트가 Windows 양식 신청이라는 것을 잊어 버렸습니다.

+2

'std :: vector'를 의미합니까? – johnchen902

+0

Offtopic : 'var'은 VS2005 C++에서 유효한 변수 이름입니까? – FSou1

+0

어쩌면 클래스 이름이 그다지 나지 않을 것입니다. – AnDr3yy

답변

3

std::vector<var> myVector 또는 std::list<var> myList을 사용해 보셨습니까?

+0

'std :: list'는 아마도 원하는 것이 아닙니다. 그것은 아주 다르며,'std :: vector'는 여러분이 필요로하지 않는 한 사용되어야합니다. – chris

+0

@chris'std :: list'는'std :: vector'와는 상당히 다르다는 것을 알고 있습니다 만, 나는 var typed 객체들의 집합을 가질 가능성을 지적하고 싶었습니다. –

+0

프로젝트가 Windows Form 응용 프로그램이고 std에서 오류가 발생했음을 언급하는 것을 잊어 버렸습니다. 네임 스페이스 또는 라이브러리를 사용해야합니까? – AnDr3yy

1

당신은이 작업을 수행 할 수 있습니다 스택에 50 개 바르가

var myArray[50]; 

합니다. 다음과 같이 할 수도 있습니다 :

var* myArray = new var[50]; 

힙에 50 개가 있습니다.

var myObject; 
std::vector <var> myVector; 
myVector.push_back(var); 

또는, 나는 일반적으로 사용하는 마지막 :

std::vector <var*> myVector; 
var* pVar = new var(); 
myVector.push_back(pVar); 

이 일을 너무 여러 가지 방법이 있습니다,이 단지 또는 당신은 단지 표준 : : 벡터를 사용할 수 있습니다 조금. 작업을 수행해야합니다

+0

불필요하게 포인터 벡터를 사용하는 것이 오히려 * 포인트 * 적다. 이제는 청소하는 것에 대해 걱정해야합니다. – chris

+0

'std :: vector >'입니다. 예외를 정리하거나 걱정할 필요가 없습니다. – chris

+0

나는 마지막 하나를 사용하고 작동하지만, 이제 벡터에 var 객체를 어떻게 추가 할 수 있으며 어떻게 표시 할 수 있습니까? – AnDr3yy

2

:

#include <vector> 

using std::vector; 

class var 
{ 
    int x; 
    int y; 
}; 

int main(void) 
{ 
    vector<var> myVec(10); // creates a vector of 10 elements of var objects 

    // ... other stuff 

    return 0; 
} 

그러나 벡터, 예를 들어, 물체를 넣어 더 많은 방법이 있습니다 빈 벡터를 만들고 vector::push_back() 등을 사용하십시오. 모든 대안에 대해서는 표준 라이브러리 설명서를 읽어야합니다.

+0

왜 객체 배열이 아닌지, 왜 벡터 사용> – Subhajit

+0

프로젝트가 Windows Form 응용 프로그램이라는 것을 잊어 버렸고 네임 스페이스 표준을 찾지 못했습니다. – AnDr3yy

+0

@Subhajit 내가 마지막 단락에서 지적했듯이 : 거기에는 더 많은 해결책이 있습니다. 간단한 배열을 사용하면 런타임 및 스택에 고정 된 크기로 제한됩니다. 이것이 충분한 경우 사용할 수 있습니다. 그러나 배열 크기가 동적이어야하거나 전체 데이터의 크기가 스택 공간을 초과하면 벡터 또는 해당 친척 중 하나가 이동하는 방법입니다. – ogni42