• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

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

22.07.25 17:19 작성 조회수 89

0

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

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

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

답변 1

답변을 작성해보세요.

2

강민철님의 프로필

강민철

2022.07.26

간단합니다.

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

질문자

2022.07.26

감사합니다!