컴공 일기262
엊그제 새벽 즈음 했던 동적배열을 조금 더 만져서 값 초기화까지 되게 구현했네요..
임시객체로 오는 이슈까지 이동시맨틱으로 붙잡고, 배열 덧셈 또한 가능합니다.
꽤 쓸만한 배열이 되겠군요…는 개뿔
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를 선물하세요.
-
지방 수의예과 3
충남대 수의예과 가능할까요...걱정되네요 경북은 힘들거같고 조언좀요...
-
파일럿 vs 수의사 14
공군 파일럿이든 항공대 한서대 가서 파일럿이 되든 vs 수의사 여러분이시라면 어디로...
-
충남대학교 수의과대학 수의예과 16학번을 위한 카페가 만들어졌습니다....
-
제 점수가 아니고요 여자친구 점수인데 정확하진않고 등급만 아는데 어디라도 되면...
-
가군- 수의대 희망 경북대 수의예 - 4칸 경상대 수의예 - 3칸 이 둘중에...
-
아무런 생각도 없이 그냥 수능봤더니 수의대 점수나와서 수의대 생각하는 사람들에게 2
그럴 빠에는 오지 마시길 그렇게 왔다가 수의대에 실망하고 반수함 ㄹㅇ 차라리 서성한...
-
전전제 수의도 안될까요??? 학고 먹고 반수했는데 망했네요...ㅠㅠ
-
가 경북 나 충남 생각하고있는데 가능할까요?경북변환551.07 충남변환 190.08입니다
-
이과 43212 나 43222 인데 이화여대 가능한가요??? 이대말고도 수의예과...
-
가군 계속 고민인데.. 어디를 선택할거 같으세요? 진로를 생각했을때요!^^
-
건대 수의예과 나오면 수의사 하는건가요?
-
목표였던 경북대 수의는 힘들거같고ㅠㅜ 딴 지방수의대라도 써보려하는데,...
-
vet10 벳텐 이라는 사이트 다들 아시나요? 나만몰랏나???
-
반수생입니다 작년 보다 훨씬 떨어진 성적이지만 적성때문에 수의대 가고 싶은데 문닫고...
-
http://gall.dcinside.com/board/view/?id=vm&no=3...
-
건수를 가고싶긴하지만... 딱봐도 간당간당하고 스나이핑해야하는 점수같고 ㅜㅠ...
-
누적표백 2.5인데 가능할까요?
-
어디든지 상관없어요
-
건수 넣었는데 6칸 나오면 그래도 괜찮은거죠 ????
-
제주대 수의 말고는 아무거나 다 갈 의향 있습니다. 오늘 성적표보고 화학 멘붕왔네요...;;
-
안녕하세요 수의대 재학생입니다. 수의대 관련 글 보고 오지랖에 씁니다. 훌리는...
-
건수 될까요 0
ㅈㅎㅅ는 추합 뜨는데 최초합 가능할까요
-
7년째 바라던학교입니다써봐도 될런지요..
-
한의대 아니면 치대 가고싶은데 이점수로 안될까요 ㅠㅜ
-
등급은 좋아보이게 나왔는데 전부 커트라인급이라 불안하네요;;모의지원란에도 건수는...
-
지방대 수의대도 안되는 점순가요?? ㅈㅎㅅ에서 나군 충남대 모의지원 햇는데 4칸...
-
건국대 수의대 지방대 한의대(부산, 동국) 경기도에 삽니다. 어디를 가야...
-
나군 전북 다군 제주 박을 생각중인데 가군은 감이 안잡히네요 ㅈㅎㅅ에서...
-
현재 가 건국대 수의대 나 고려대 생명공학과 다 동국대 한의대 이렇게 생각하고...
-
저 수의대 갈때만해도 수가모에서 점공하고 엄청붐볐었는데.... 오랜만에 생각나서...
-
제가 다니는 한의대든 의대 치대, 수의대, 간호대, 약대등등 소위 메디컬라인이라고...
-
건대 수의대 될까요?? 18
국어가 심하게 망하긴 햇는데 영어 한번 믿고 써도될까요??
-
보시다싶이 수학이 망해버려서 이렇게 나왔는데 승리의 생1지1이라서 표점은 높게 나왔어요
-
부탁요ㅠㅠ 6
수학 영어 비중이 높은 서강대 끝자락도 힘든 점수인가요? 아이가 과탐을 너무...
-
제 동생이 올해 고3인데 저는 문과에 입시가 3년전이라 도움받을 곳이 여기밖에...
-
못가지 않나요 ? ㅠㅠ
-
제점수로 건대수의예, 경북대치대, 경희대치대 가능한지 여쭤봅니다 10
화학을 많이 못봐가지고 점수가 어떻게될지모르겠는데요.. 제점수로 연/고대...
-
입시생은 아니고 그냥 궁금해서..절대적인 공부량은 어떻고의, 치, 한, 공대랑...
-
진X사 4칸 뜨고 메가는 점수 남던데...추합으로라도 안되나요...?
-
서울교대 안정? 11
시험 망해서 굉장히 절망적인 순간에 서울교대가 안정이 뜨네요. 뭔가 이상한 거...
-
제가 요번 2016수능에서 가채점해보고 표준점수로 보니까 보통 지방의대지원가능...
-
제주대 제외 지방수의 아무데나 가능한 곳 없을까요?국어 화학 한숨만 나오네요 진짜.
-
지방치 최하위대학과 건수입결, 대략적으로 어디가 더 높은지 아시는분
-
이과 92 92 96 41 47 생1지1 라인좀 봐주세요 2
수의예 희망하고있는데 건대수의대는 힘들까요? 표점합은 524입니다.
-
국어 수학 영어 화1 생1 차례대로 원점수 80 96 94 47 41 이투스 기준...
-
작은집 실내에서 키우는 수캐가 있는데 명절마다 데리고 옴어느 설날이었나, 엄마가 그...
-
건국대 수의대 5
국어2 수학2 영어1 생2 1 화2 1 합격 가능 한가요?
-
이젠 아야 없나요 ....수a형은 갈 기회가 없는 건가요 ?
씨쁠 하시는줄 알았는데 이건 그냥 씨네요?
예? 아닙니다. 실행 쪽 코드에서는 다분히 C라고 느껴지실 수 있겠지만
위에서 살펴볼 수 있듯이 “dynamic_arr.h”라는 사용자 라이브러리를 부르고 있죠. dynamic_array라는 객체를 생성한 겁니다. 당연히 라이브러리는 C++을 이용했구요 :)
아하.. 잘 모르고 말씀드렸네요;;
어려워..
갠적으로 cpp를 주력으로 쓰는거면 STL은 구현해보는 것도 좋은거같음 이런식으로
동의하는 바입니다. 원래 사실, framework이라는 게 기본적으로 “가져다 쓰기만 하면 된다”는 생각이 기저에 깔리다 보니 너무 쉽게 생각하는 측면도 없지 않아 있습니다. 그렇다고 해서 1부터 100까지 모든 걸 다 개발할 줄 알아야 한다는 건 아니지만, framework의 기본적 구조와 메커니즘을 알아야, 그 위에 잘 올라탈 수가 있다고 생각해요. 또한, 그 프레임워크 위에서 해야 될 짓과 하지 말아야 할 짓을 구분해야 하는데… 이걸 구분하기 위해선 일정수준의 구조적 이해와 흐름은 당연히 알고 있어야 한다고도 봅니다.
그쵸 ‘하지 말아야 할 것’ 그리고 구조를 알아야하는 이게 중요한거같습니다 ㅋㅋㅋ 다른 자료구조는 학습하면서 적당히 익혀지지만 cpp의 벡터나 java의 컬렉션같은 것들은 직접 구현을 해보면 진짜 좋죠 ㅋ