
OCICollection::append 메소드는 새로운 객체를 생성하는 것이 아니라, 기존의 객체에 데이터를 추가하는 방식으로 동작합니다.
append 메소드가 새로운 객체를 생성하는 경우, 메모리 낭비가 발생할 수 있습니다. 하지만 OCICollection::append 메소드는 기존의 객체에 데이터를 추가하기 때문에 메모리 낭비를 최소화할 수 있습니다.
같은 데이터를 여러 번 append 할 때, OCICollection::append 메소드는 데이터의 중복을 허용하지 않습니다. 따라서 위 코드에서 다시 append(1) 을 호출하면, 기존에 추가한 데이터 1은 삭제되고 새로운 데이터 1이 추가됩니다.
이러한 동작 방식은 OCICollection::append 메소드가 데이터의 중복을 허용하지 않기 때문에 발생합니다. 만약 데이터의 중복을 허용하고 싶다면, OCICollection 클래스의 데이터 저장 방식을 변경해야 합니다.
예를 들어, OCICollection 클래스에서 데이터를 저장하는 방식을 다음과 같이 변경할 수 있습니다.
#hostingforum.kr
cpp
class OCICollection {
public:
void append(int data) {
if (find(data) == -1) {
// 데이터가 존재하지 않으면 추가
data_list.push_back(data);
}
}
int find(int data) {
for (int i = 0; i < data_list.size(); i++) {
if (data_list[i] == data) {
return i;
}
}
return -1;
}
private:
std::vector data_list;
};
이러한 방식으로 데이터의 중복을 허용할 수 있습니다.
2025-04-19 07:09