|
안녕하세요 만해입니다.
list는 vector와 같이 get이나 [] 오퍼레이터를 지원하지 않기 때문에 이터레이터를 이용 해야 합니다.
밑의 소스를 참고 하세요
//---------------------------------------------------------------------------
#include <list>
#include <vector>
#include <iostream>
using namespace std;
#pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
class RasGeoData {
public:
int JungChainNo; //채인넘버
double PlusChainNo; //추가채인넘버
int StationEa; //측점 수
double BankLeft, BankRight; //뱅크 스테이션 X,y좌표
vector<double> StationX; // X좌표
vector<double> StationZ; // Y좌표
private:
};
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
list<RasGeoData> RasList;
for (int i = 0; i < 10; i++)
{
RasGeoData RasData;
RasData.StationEa = i;
RasList.push_back(RasData);
}
list<RasGeoData>::iterator itr_end = RasList.end();
for ( list<RasGeoData>::iterator itr = RasList.begin(); itr != itr_end ; itr ++ )
{
RasGeoData data = *itr;
cout << data.StationEa << endl;
} // 순방향
list<RasGeoData>::reverse_iterator ritr_end = RasList.rend();
for ( list<RasGeoData>::reverse_iterator ritr = RasList.rbegin(); ritr != ritr_end ; ritr ++ )
{
RasGeoData data = *ritr;
cout << data.StationEa << endl;
}// 역방향
return 0;
}
뽀뽀중 님이 쓰신 글 :
: 여러 자료형을 하나의 단위라서 클래스를 만들었습니다.
:
: class RasGeoData {
:
: public:
: int JungChainNo; //채인넘버
: double PlusChainNo; //추가채인넘버
: int StationEa; //측점 수
: double BankLeft, BankRight; //뱅크 스테이션 X,y좌표
: vector<double> StationX; // X좌표
: vector<double> StationZ; // Y좌표
:
: private:
:
: };
:
:
: 단위묶음(class)을 자료의 중간위치에서 삭제할수 있기에 list 로 하였습니다.
:
:
: list<RasGeoData> RasData;
: RasGeoData RasGeoDataInput;
:
: RasGeoDataInput.JungChainNo = data1;
: RasGeoDataInput.PlusChainNo = data2;
: RasGeoDataInput.StationEa = data3; //로 원하는 단위묶음 데이터 대입
: (생략)
: .
: .
: .
: .
:
: RasData.push_back(RasGeoDataInput);
:
: 이렇게 list 에 넣었는데, 데이터를 추출하여 다른 변수에 대입하려면 어떻게 해야 하나요?
: 다시말하면,
:
: 위와 같은 방법으로 list 에 저장한 데이터를
: 어떻게 추출 해야 하나요?
:
: 책보고 열심히 따라하고 있는데, 예제 소스 코드가 없으니 막막 하기만 합니다.
:
:
: PS. 정의된 클래스를 동적배열처럼 사용하는 방법이 있나요?
|