목록전체 글 (483)
음악, 삶, 개발
std::map 은 key 와 value 로 이루어진 container 이다. std::map 은 key 가 unique 해야하지만, std::multimap 은 동일한 key 를 여러 객체에 중복하여 사용할수있다. 이외에는 사용법이 동일하여 std::map 으로 일단 설명하겠다. 을 추가하기 std::map 또는 std::multimap 을 사용하기위해서는 #include 을 코드에 추가해야한다. 따로 #include 은 없다는것을 기억하자. #include map 생성하기 std::map m; // key : double, value : int map 객체를 생성하기위해서는 를 명시해야한다. 위의 코드에서 key 는 double, value 는 int 이다. map 에 요소를 추가하기 : emplac..
결국 vector 간에 = 연산자를 사용할때 라고 말할수있다. std::vector vec1 {1, 2, 3, 4}; std::vector vec2; vec2 = vec1; // assignment operator 하지만 위와 같이 = 연산자를 써야할때 우리는 3가지의 경우로 나눌수있다. 1. vec1 에는 요소들이 있고, vec2 는 비어있을때. 2. vec1 은 비어있고, vec2 에는 요소들이 있을때. 3. vec1, vec2 둘다 요소들이 있지만 vec1 이 더 많은 요소를 가지고있을때. 4. vec1, vec2 둘다 요소들이 있지만 vec2 가 더 많은 요소를 가지고있을때. 나는 위와 같은 각 경우들을 실행했을때 실제로 무엇이 일어나는지 보고..
원하는 구역에 색깔을 자유자재로 넣게해주는 툴이다. 먼저 객체를 선택해야한다. 그후 Live Paint Bucket 툴을 K 를 눌러 선택한다. 그럼 무언가가 활성화된다. 이후 Color 패널을 이용하여 색을 변경해가면서 원하는 영역을 채워나간다. 이때 Layers 패널을 보면 기존의 객체들이 Live Paint 라는 그룹의 객체로 변하는것을 알수있다. 이 Live Paint 객체에서 각 Path 로 변환하고자한다면, Object - Expand 를 실행한다. 그럼 위와 같이 각각의 Path 로 분리된것을 볼수있다. Live Paint Bucket 이 선택된 상태에서 Alt 키를 누르고있으면, 일시적으로 Eyedropper..
Cat 클래스의 객체를 가지고있는 Cats 클래스가 있다. 한개의 Cats 객체를 만드려할때, 기존의 Cats 객체를 복사하여 만드는 코드이다. Copy Constructor 안에서 range based for 루프를 사용하기위해, begin() 과 end() 를 정의해주어야한다. class Cat { public : Cat(int toAge) : age(toAge) {} int getAge() { return age; } private : int age; }; class Cats { public : Cats() {} Cats(const Cats& other) { for (const auto& cat : other) add(cat); } void add(const Cat& cat) { cats.push_..
int main () { std::vector v = { 0, 1, 2, 3, 4, 5 }; for (const int& i : v) // access by const reference std::cout
곧바로 vector 를 사용하지않고, 나의 클래스를 만들고 멤버로 vector 를 사용하는 경우가 자주있다. 이때는 vector 를 가지고있는 클래스안에 begin() 과 end() 함수를 아래와 같이 정의해주면 된다. class Cat { public : Cat(int toAge) : age(toAge) {}; int getAge() const { return age; } private : int age; }; class Cats { public : Cats() {} void add(const Cat& cat) { cats.push_back(cat); } /* to use range based for loop */ auto begin() { return cats.begin(); } auto begin(..
vector 가 내가 만든 클래스를 객체로 가지는 경우가 자주 발생한다. std::sort(begin(), end()) 를 사용하여 나의 vector 를 sort 하고자할수있다. 이를 위해서는 나의 클래스 내부에 연산자
C+11 에서는 constructor 의 재사용을 허용한다. class SomeType { public: SomeType(int new_number) : number(new_number) {} SomeType() : SomeType(42) {} private : int number; }; 참고 링크 Reusable constructors C++ Object construction improvement
Pen 툴은 점을 계속해서 찍어나가 그리는 방식이고, 실제 그리는 느낌으로 연속적으로 무언가를 그리고자 한다면 Pencil 툴 (단축키 : n) 을 사용해야 한다. 이때 Stroke 값을 조절하여 Pencil 툴의 굵기를 조절한다.
Artborad 를 화면에 꽉 채우기 : Ctrl + 0 화면 확대하기 : Ctrl - 화면 축소하기 : Ctrl + 이때 중요하건 Ctrl - 와 Ctrl + 는 객체가 선택되어있냐 안되어있냐에 따라 다른 부분을 확대, 축소한다. 아무것도 선택되어있지않다면 Artboard 를 중심으로 확대, 축소된다. 당연히 객체를 중심으로 확대, 축소된다. 마우스휠로도 확대 축소를 할수있다. 어떤 툴을 선택하든 상관없이 작동한다. < Ctrl + Space 누른채 영역 드래..