inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

[잠깐지식] 구조체를 이용한 STL vector 정렬(2021년 1월 추가)

코드를 똑같이 실행시켰는데 자꾸 에러가 뜹니다

해결된 질문

319

cheewr85

작성한 질문수 2

0

#include<iostream> 
#include<vector>
#include<algorithm> 
using namespace std;
struct Loc{ // 구조체 선언 
	int x, y, z; // 구조체 멤버 선언 
	Loc(int a, int b, int c){ // 구조체 생성자 선언(초기화하기 위햬) 
		x=a;
		y=b;
		z=c;
	}
	// 크기를 비교하는 연산자, 연산자 오버로딩 함, 두 객체의 크기를 비교함, 정렬기준을 잡음 
	bool operator<(const Loc &b)const{ // 구조체를 주소로 받음, b를 통해서 원본을 바꿈, 이를 차단하기 위해서 const 선언 
		// operator를 const로 선언하여 x,y,z를 변경할 수 없게 함
		return x<b.x; // opreator에 있어서 호출한 객체 x는 앞에 Loc &b해서 넘어온 인자로 넘어온 객체는 뒤에 그리고 앞에것을 작은것 뒤에것을 큰 걸로 정렬을 하게끔 오름차순으로 정렬함 
	}
}; 
int main(){
	// freopen("input.txt","rt",stdin);
	vector<Loc> XY; // 구조체형 vector 선언
	XY.push_back(Loc(2, 3, 5));
	XY.push_back(Loc(3, 6, 7));
	XY.push_back(Loc(2, 3, 1));
	XY.push_back(Loc(5, 2, 3));
	XY.push_back(Loc(3, 1, 6)); // 구조체 생성자 활용하여서 그 값을 넣음
	sort(XY.begin(),XY.end()); // 정렬을 시킴, x를 기준으로 구조체 객체를 정렬시킴, 즉 2, 3, 5에서의 x 값 2의 값으로 정렬함 뒤의 값은 무관함 
	for(auto pos:XY) cout << pos.x << " " << pos.y << " " << pos.z << endl;
	return 0;
}                         

이렇게 코드를 똑같이 쳤는데 컴파일 에러가 뜹니다

에러의 내용이 [Error] 'pos' does not name a type이라고 뜨는데 선생님 코드와 동일한데 제 코드에는 왜 에러가 뜨는지 모르겠습니다

C++ 코테 준비 같이 해요!

답변 1

1

김태원

안녕하세요^^

제 컴퓨터에서는 위 코드가 정상으로 작동합니다.  만약 DEV-C++를 쓰시면 컴파일러를 업해보시는 게 좋을 것 같습니다.

컴파일러 업하는 방법은 섹션5의 첫번째 영상에서 소개하고 있습니다.

테스트 케이스 질문

0

371

1

병합정렬 시간복잡도 질문

0

460

1

41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.

0

1340

2

질문드립니다.

0

374

1

질문드립니다!

0

427

1

dev 프로그램 질문

0

272

1

문제가 이해가 안되요

0

374

1

4번 나이차이 문제 접근법 질문 드립니다.

0

304

1

source file not compiled

0

1032

3

59번 질문드립니다.

0

369

1

25번 문제 질문

0

345

1

4. 나이차이 문제 질문입니다.

0

367

1

90번 라이언 킹 심바 1번 테스트 케이스

0

467

1

71번 문제 전역 변수 질문 있습니다

0

356

1

75번, 79번 priority_queue관련

1

353

1

75.최대 수입 스케줄

0

394

2

복면산 정답의 수

0

427

1

테스트 케이스에 대해서

0

441

1

수업 내용 질문입니다!

1

228

1

풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!

0

817

2

12. 플로이드-와샬(그래프 최단거리) . 27:25초

0

251

1

다른 풀이 방식

0

313

1

크루스칼 vs 프림

0

303

1

숫자 총개수 small 질문있습니다.

0

234

1