컴공 일기262
게시글 주소: https://orbi.kr/00070997040

엊그제 새벽 즈음 했던 동적배열을 조금 더 만져서 값 초기화까지 되게 구현했네요..
임시객체로 오는 이슈까지 이동시맨틱으로 붙잡고, 배열 덧셈 또한 가능합니다.
꽤 쓸만한 배열이 되겠군요…는 개뿔
std::vector나 std::array에 이미 있는 기능입니다.
“dynamic_arr.h”
#pragma once
#include <iostream>
using namespace std;
class dynamic_array
{
public:
dynamic_array() = default;
explicit dynamic_array(int n);
dynamic_array(const dynamic_array&);
dynamic_array(dynamic_array&&) noexcept;
int* begin() const;
int* end() const;
const int getSize() const;
void PrintData() const;
int operator[] (const int index) const;
int& operator[] (const int index);
dynamic_array operator+(const dynamic_array&);
dynamic_array& operator=(const dynamic_array&);
dynamic_array& operator=(dynamic_array&&) noexcept;
~dynamic_array();
private:
int* data = nullptr;
int size = 0;
};
dynamic_array::dynamic_array(int n)
{
cout << "dynamic_array(int)" << endl;
data = new int[n];
size = n;
}
dynamic_array::dynamic_array(const dynamic_array& rhs)
{
cout << "dynamic_array(const dynamic_array&)" << endl;
this->size = rhs.getSize();
data = new int[size];
for(int i=0; i<size; i++)
{
data[i] = rhs[i];
}
}
dynamic_array::dynamic_array(dynamic_array&& rhs) noexcept
{
cout << "dynamic_array(dynamic_array&&)" << endl;
//의도적인 shallow copy
this->data = rhs.data;
this->size = rhs.getSize();
rhs.data = nullptr;
rhs.size = 0;
}
dynamic_array::~dynamic_array()
{
delete[] data;
}
int* dynamic_array::begin() const
{
return data;
}
int* dynamic_array::end() const
{
return data+size;
}
const int dynamic_array::getSize() const
{
return size;
}
void dynamic_array::PrintData() const
{
for(int i=0; i<this->getSize(); i++)
{
cout << this->data[i] << " ";
}
cout << endl;
}
int dynamic_array::operator[](const int index) const
{
if(index < 0 || index >= this->getSize())
{
cout << "Invalid Index!!" << endl;
exit(-1);
}
return this->data[index];
}
int& dynamic_array::operator[](const int index)
{
if(index < 0 || index >= this->getSize())
{
cout << "Invalid Index!!" << endl;
exit(-1);
}
return data[index];
}
dynamic_array dynamic_array::operator+(const dynamic_array& rhs)
{
dynamic_array retVal(this->getSize() + rhs.getSize());
copy(this->begin(), this->end(), retVal.begin());
copy(rhs.begin(), rhs.end(), retVal.begin() + this->getSize());
return std::move(retVal);
}
dynamic_array& dynamic_array::operator=(const dynamic_array& rhs)
{
cout << "dynamic_array::operator=(dynamic_array&)" << endl;
if(data != nullptr)
delete[] data;
data = new int[rhs.getSize()];
for(int i=0; i<rhs.getSize(); i++)
{
data[i] = rhs[i];
}
size = rhs.getSize();
return *this;
}
dynamic_array& dynamic_array::operator=(dynamic_array&& rhs) noexcept
{
cout << "dynamic_array::operator=(dynamic_array&&)" << endl;
if (this != &rhs) { // 자기 대입 방지
if (data != nullptr) {
delete[] data;
}
data = rhs.data;
size = rhs.size;
rhs.data = nullptr;
rhs.size = 0;
}
return *this;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
아오 0 0
ㅈㅏㅁ이안와
-
여사친이 톡으로 노노 거리길래 반가워서 "개웃기다노" 했더니 2 0
그런말이 있냐면서 너 원베냐면서 손절당함 ㅜ 너가 먼저 썼다노..
-
지2 매기분 1강-7강 (1~62) 1단원 전체 수강 완료 기하 시발점(이전에...
-
6모 수학 후기 0 0
작수 99 6모 96점(22) 22답 18썻는데 어케푸노 30분남음
-
애기 때 내가 바닷물을 다 삼켜버리는 상상을 하곤 했는데
-
제 남편 사진 공유합니다 2 0
-
시기별 좋아했던 가수/그룹들 2 0
2018(11살): 레드벨벳 2019(12살): 아리아나 그란데, 마룬파이브,...
-
카투사 기원 7+6일차 0 0
-
드디어 방학 시작이구나 2 0
고작 한달동안 성적 올리는건 기대하면 안되겠지
-
에너지드링크가 5 0
은근히돈이많이나가네
-
어삼쉬사 0 0
수학 안정 4등급이 목표인데요 현재 낮은4가 나옵니다 엔기출3점짜리는 다끝냈고요...
-
말도안돼 3 0
담배 안핀지 3주됨
-
수학 언제오르지 0 0
ㅠㅠ
-
비둘기야 밥 먹자 0 0
구구구구구
-
부모님 설득하는 법 좀 알려주셈 18 0
입시 컨설턴트를 받고 싶었는데 부모님은 내 성적이 안 좋아서 성적 올리는 게 먼저라...
-
디오더블쥐~ 1 0
스눕도기독
-
국어 감 다떨어졌다 1 1
빨리 나무위키 봐야함
-
오랜만이에요다들 8 2
요즘 오르비는 조용한가요?
-
수학 시간 부족 (고2) 3 0
고2 모고긴한데.. 항상 객, 서 끝번호 3~4개를 시간 부족해서 못품 어려운건...
-
수학 전국 서바 2회(스포O) 0 1
저도 서바 92첨 받아봐서 ㅁㅌㅊ 부남짤 찾을려는데 막상 안 보이네요 14,29틀...
-
고2 여름방학 국어 공부법 좀 알려주세요 선배님들 ㅠㅠ 1 0
지금 고2입니다! 현재 국어가 고3 모의고사도 80분내로 1등급이 안정권으로 뜨고...
-
국/수 테이블은 아침에 올려줄게염 계산기: https://suneungcalc.com/
-
공복이 너무 기니까 4 0
어지럽군나.. 최소한의 단백질이라도 채울까
-
집에잇으면계속집에잇고싶은데 2 3
집밖에나가면계속밖에있고싶어 아물론학교는예외임
-
빰빰빰 1 0
나는간다관독으로
-
국어 문학 2 0
강의 들어야할까요 독서같은건 고3꺼 정답률3,4,50프로되는거 맞는데 문학은...
-
인스타 보는데 2 2
우리 지역 명문고 탑텐에 왜 우리 학교가 있음 기분은 좋지만 사실이 아닌걸 학평...
-
씻기 싫어서 밖에 안나갈려교 5 0
하아..
-
아르기닌이랑 비타민B 맞지? 4 0
대충 뇌에 좋은 영양제 맞지?
-
뭘 하고싶지 2 0
긴가민가하네
-
개빡치네 1 0
고1 1학기 1.29 인데 9등급제로 계산해도...
-
수바 2회 3 0
ㄹㅇ 개쳐어렵네 이렇게 나오면 수능 1컷 70점대도 되겠다 ㅅㅂ 14,15틀 함...
-
동창회에 갓더니 4 5
다들 나랑 동갑이엇음 신기허네
-
인생이 어디로 가는거지 3 1
ㅈ된거같은데
-
일반고 2.0이고 생명계열 지망해요 (근데 수과학 성적이 엄청 좋은 편은 아니고...
-
수학 n제 뭐이리 어려움 0 1
본인 3모 5모 6모 7모 다 1등급이고 6모 1뜨고 나서 2,3등급도 n제 풀길래...
-
250929 기하 1 0
한완기 해설 1 2 둘다 나처럼 안풀었네.. 난 이게 가장 괜찮은 풀이 같은데
-
중고딩 때 감사했던 선생님들한테 페레로로쉐 하나 못드리는게 ㄹㅇ 거지같았오 쌤들은...
-
가끔씩 5 4
공부안하는날현타와서개늦게잠 오늘임
-
사문 오늘은 진짜 시작해야하나 4 2
ㅈㄴ 귀찮은데 리프레쉬 느낌으로 해야갯노
-
대성 교재패스 배송비 1 1
교재패스까지 꾸역꾸여 배송비받는거 역하네
-
수능수학전문과외 - 수능 때 6모보다 성적이 오르지 않으면 전액 환불해드립니다. 0 0
수능 때 6모보다 성적이 오르지 않으면 전액 환불해드립니다. 메가 대성 등 대형사...
-
이번주 금요일 7섶 1 1
모고친날은 잇올 칼퇴가능하던데
-
수학 기출 추천해주세요 3 0
재수중이고 목표는 4등급입니다 수학 기출문제집 추천해주세요 연도별 기출을 풀까요...
-
이승모쌤 생신축하드려요!!! 1 1
-
스타팅블록 복습 엔제 0 0
김범준 스타팅블록 스블 복습이랑 엔제 풀이 병행하는 중이거나 해 보신 분 잇으면...
-
왤케 수학 능지가 저능해졌지 1 1
하..
-
걍 대충 풀고 치우는용도인가요?
-
무슨 사명감을 가지고 까는 것 같아서 되게 기이함 이동진이 자기 별점에 대해...

씨쁠 하시는줄 알았는데 이건 그냥 씨네요?
예? 아닙니다. 실행 쪽 코드에서는 다분히 C라고 느껴지실 수 있겠지만
위에서 살펴볼 수 있듯이 “dynamic_arr.h”라는 사용자 라이브러리를 부르고 있죠. dynamic_array라는 객체를 생성한 겁니다. 당연히 라이브러리는 C++을 이용했구요 :)
아하.. 잘 모르고 말씀드렸네요;;
어려워..
갠적으로 cpp를 주력으로 쓰는거면 STL은 구현해보는 것도 좋은거같음 이런식으로
동의하는 바입니다. 원래 사실, framework이라는 게 기본적으로 “가져다 쓰기만 하면 된다”는 생각이 기저에 깔리다 보니 너무 쉽게 생각하는 측면도 없지 않아 있습니다. 그렇다고 해서 1부터 100까지 모든 걸 다 개발할 줄 알아야 한다는 건 아니지만, framework의 기본적 구조와 메커니즘을 알아야, 그 위에 잘 올라탈 수가 있다고 생각해요. 또한, 그 프레임워크 위에서 해야 될 짓과 하지 말아야 할 짓을 구분해야 하는데… 이걸 구분하기 위해선 일정수준의 구조적 이해와 흐름은 당연히 알고 있어야 한다고도 봅니다.
그쵸 ‘하지 말아야 할 것’ 그리고 구조를 알아야하는 이게 중요한거같습니다 ㅋㅋㅋ 다른 자료구조는 학습하면서 적당히 익혀지지만 cpp의 벡터나 java의 컬렉션같은 것들은 직접 구현을 해보면 진짜 좋죠 ㅋ