-6
#include <iostream>
#include <algorithm>
using namespace std;
class myclass
{
public:
int start;
int end;
};
bool comp (const myclass &a,const myclass &b)
{
return a.start < b.start;
}
int main (void)
{
int n,temp,t,l,r,i,j;
cin>>t;
while (t != 0)
{
cin>>n;
temp = n;
i = 0;
myclass arr[100000];
while (temp != 0)
{
cin>>l>>r;
arr[i].start = l;
arr[i].end = r;
i++;
temp--;
}
for (j = 0; j < i; j++)
cout<<arr[i].start<<" "<<arr[i].end<<"\n";
cout<<"\n";
sort(arr,arr+i,comp);
for (j = 0; j < i; j++)
cout<<arr[i].start<<" "<<arr[i].end<<"\n";
t--;
}
return 0;
}
클래스를 만들었으므로 해당 myclass 배열의 값을 스캔하려고합니다. 그러나 입력 한 값을 인쇄 할 때 0을 모두 표시합니다. 값 입력을 게시하면 값을 정렬해야하지만, 문제는 입력이 사용자 지정 클래스의 배열에서 제대로 나오지 않는다는 것입니다. 이 일에서 내가 뭘 잘못하고 있니? 이러한 루프 내부 [j]
에모든 데이터 값을 0으로 초기화하는 이유는 무엇입니까?
은 : 클래스의 멤버가 공개하고 직접 접근하는 나쁜 관행으로 간주됩니다. 멤버에 직접 액세스 할 수있는 간단한 데이터 구조를 만들고 싶다면 클래스 대신에'struct'를 사용하십시오. –
@AntonPoznyakovskiy Bah,'struct' 또는'class'를 사용하면 아무런 차이가 없습니다. 'struct'는이 경우에 일부 타이핑을 저장하는 이점이 있습니다. 이것이'class'를 선호하는 유일한 이유입니다. – juanchopanza