{ STL에서 전체의 요소에 특정 작업을 하고 싶을 때, 루프로 for문을 많이 사용한다. 이것을 알기에 좀더 편하게 사용 할 수 있는 알고리즘인 for_each가 있다. for_each는 루프를 대신해서 사용 할수 있으며, 보다 독립적인 구조를 유지 할 수 있게 해 준다. 그래서인지 for_each 를 사용했던 사람은 for 문보다 for_each를 더 많이 사용 한다. for_each를 사용 할 때는 함수 객체를 붙여 줄 수 있는데, 간단한 것이라면 boost 의 Lambda 를 사용하면 더 편해진다. 무슨 말이 필요 할까, 그냥 내가 만들어본 예제코드를 보자. #include #include #include #include // ikpil.com int main( void ) { //using na..
C++ Coding Standards 검색 결과
해당 글 59건
항목 84 : 직접 작성한 루프보다는 알고리즘을 활용하라. ( Prefer algorithm calls to handwritten loops. )
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 4. 16. 23:04
항목 78 : C++ API가 아닌 다른 것들과의 데이터 교환을 위해서는 vector(그리고 string::c_str)를 활용하라. ( Use vector (and string::c_str) to exchange data with non-C++ APIs. )
{ 왜냐하면 메모리 구조가 연속적으로 유지되기 때문이다. 컨테이너 요소의 첫번째 메모리 주소만 알면, 그 뒤의 메모리 접근에 있어서, 별다른 과정을 거치지 않아도 된다. 주의 해야 할 것은 반복자를 포인터로 보지는 말라는 것이다. 물론 포인터 형태로 되어 있지만, 보다 개념적으로 완성된 상태로 보는게 더 이롭다 라고 책에 적혀있네 }
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 4. 12. 19:35
항목 67 : 계획적이지 않고 일반적이지 않은 코드는 작성하지 말라. ( Don’t write unintentionally nongeneric code. )
{ 작성해도 되긴 된다. : ) 단지 좀 더 재사용 가능한 코드를 만들기 위해 노력을 하자는 의미로 이해하면 될 듯 싶다. 몇가지만 요약해 줄 수 있는가? 1. 반복자의 비교는 != 로 한다. 2. 인덱스를 사용한 접근보다 반복을 사용 하라.(물론 예외는 있다.) 3. size() == 0 대신 empty()를 사용 하라. 4. 계층 구조상 최 상단의 추상화된 함수를 사용 하라. 5. const를 활용하라. 예외는 있으므로, 처음에 말했던 재사용 가능한 코드를 만들기 위해서 노력해야 한다라고 이해해도 좋을 듯 싶다. }
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 4. 12. 19:30
최근댓글