2019의 게시물 표시

C++로 프로그래밍할 때 인자 또는 리턴 값으로 std::vector 등 STL 데이터 타입 처리하는 좋은 방법

C++ 프로그래밍할 때 std::vector 등 STL 데이터 타입을 호출하는 함수로 넘겨주거나 받아야 할 경우가 있다. 이런 경우 메모리 문제 또는 속도 문제 때문에 고민을 많이 할 것 같은데, C++11 이상을 지원하는 컴파일러를 사용하는 분이라면 이 글에서 도움을 받아 가기 바란다. 함수 인자로 넘길 때 이 경우는 사용이 명확하다. Call by Reference으로 데이터를 넘기면 된다.  Call By Reference로 인자로 넘기는 방법은 pointer 를 사용해도 되지만, reference을 사용하는 것이 좋다. void foo1(std::vector & data) {   ... } void foo2(std::vector const& data) {   ... } void foo3(std::vector data) { } int main(int argc, char* argv[]) {   std::vector my_data {10, 20, 30};   foo1(my_data);   foo2(my_data); } 위 코드에서 foo1()과 foo2()는 Call by Reference로 값을 넘기는 반면에 foo3()는 Call by Value로 main()에서 my_data를 넘기게 된다.  foo1()의 data는 main()의 my_data를 참조(reference)하고 있어서 foo1()에서의 데이터 변경은 main()의 my_data에 영향을 주게 된다. 그리고 foo2()는 main()의 my_data를 참조는 하지만 수정을 할 수가 없는 것이라서 단순히 값만 참조할 수 있게 된다. 반면 foo3()에서의 data는 main()의 my_data를 넘기는 순간에 값을 복사하기 때문에 메모리가 증가하게 된다. 또한 foo3()에서 data를 수정하더라도 my_data에 영향을 주지 않는다. 함수에서

How to delete hidden files in subdirectories

When developer uses a samba server on macOS, the cache files like .DS_Store or ._.DS_Store are created. At that time, if you want to delete this files, you can do it using following bash shell: $ find . -name ".DS_Store" -exec rm -f {} \; $ find . -name "._.DS_Store" -exec rm -f {} \;

Linux 또는 macOS에서 Git 비밀번호 계속 물어보지 않게 하기

이 요약은 사용할 수 없습니다. 이 글을 보려면 여기를 클릭하세요.