강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

thd2tn님의 프로필 이미지
thd2tn

작성한 질문수

홍정모의 따라하며 배우는 C++

6.20 std::array 소개

7:45 부근 질문있습니다.

해결된 질문

작성

·

189

0

교수님께서 원하면 sorting을 중간까지만 할 수 있다고 하셨습니다.

std::sort(my_arr, my_arr+3);

그래서 이런 식으로 하면 작동이 될 줄 알았는데 my_arr은 array 달리 변수명이 포인터가 아닌가봅니다. 어떡하면 중간까지만 sorting을 할 수 있나요?

답변 1

2

간단합니다.

sort의 인자를 

아래와 같이 my_arr.begin() + index 로 주면 됩니다.

아래 예시의 경우 인덱스 3까지만 정렬됩니다.

 

#include<iostream>
#include<algorithm>
#include<array>

using namespace std;

int main()
{
	array<int, 5> my_arr = { 1, 21, 3, 40, 5 };

	for (auto &element : my_arr)
		cout << element << " ";
	cout << endl;

	sort(my_arr.begin(), my_arr.begin() + 3);
	
	for (auto &element : my_arr)
		cout << element << " ";
	cout << endl;


	return 0;
}
thd2tn님의 프로필 이미지
thd2tn
질문자

감사합니다!

thd2tn님의 프로필 이미지
thd2tn

작성한 질문수

질문하기