레필리아
'컴퓨터공학 기초' 카테고리의 글 목록 (2 Page)

컴퓨터공학 기초

컴퓨터공학 기초/C.C++

set_union 알고리즘 STL set에서 사용하기

STL에 set을 가만 보면 우리가 원하는 연산이 없습니다. 합집합, 교집합, 차집합 연산이 바로 그것이죠 그런데 사실 그러한 연산들은 STL내에 알고리즘 형태로 어떤 컨테이너(예.벡터)에서도 사용할 수 있도록 제네릭하게 제공되고 있습니다. set a; set b; set c; a.insert("abc"); a.insert("def"); b.insert("abc"); b.insert("123"); set_union(s.begin(), s.end(), b.begin(), b.end(), inserter(c, c.begin())); for(set::iterator it = c.begin(); it != c.end(); it++) { cout

컴퓨터공학 기초/C.C++

String tokenizer(문자열 split) class 구현 예시

stringTokenizer.cpp #include "stdafx.h" #include "StringTokenizer.h"stringTokenizer::stringTokenizer(const string& inputstring, const string& seperator) : _input(inputstring), _delimiter(seperator) { split(); }size_t stringTokenizer::countTokens() { return token.size(); }bool stringTokenizer::hasMoreTokens() { return index!=token.end(); }string stringTokenizer::nextToken() { if(index!= token.end..

컴퓨터공학 기초/C.C++

string split 함수 (stl vector)

간단한 코드라 설명 생략.

컴퓨터공학 기초/C.C++

virtual 응용(원리, 다중상속)

클래스의 멤버 함수는 실제로 어디에? 여지껏 멤버 변수와 멤버 함수는 모두 객체 내에 존재한다고 얘기해왔다.(그렇게 생각하고 프로그래밍 해도 상관은 없다.) 그러나, 우리는 실체를 알고는 있어야 한다. 멤버 변수는 각 객체 내에 존재하는게 맞지만, 멤버 함수는 아니다. 멤버 함수는 어짜피 같은 일을 하기때문에 각 객체 내에 두기엔 공간 낭비가 심하다.그래서 한곳에 멤버 함수를 두고, 각 객체가 그 함수를 복사해 쓰는 식으로 한다. ======================================================================================== 가상 함수가 동작하는 원리 가상 함수는 실제로는 그곳에 없는 함수라고 했는데, 그럼 대체 어떤 원리로 동작하는걸까? 가..

컴퓨터공학 기초/Java

null String problem

자바에서 String 을 다룰때 조심해야할 사항들이 있다.junit으로 테스트 하면 다음의 테스트 클래스는 성공적으로 실행된다.public class Test_NullString extends TestCase {        public void testNullString () {        String nullString = null;        String nullString2 = null;        assertNull(nullString); // null 이다.        nullString += "?";        assertEquals("null?", nullString);        assertEquals("nullnull", nullString + nullString );   }..

컴퓨터공학 기초/Java

단위테스트 JUNIT (3)

1. 프로젝트에서 테스트하기 실제 프로젝트에서 테스트를 실시 하고 자 할 때에 테스트 코드의 위치 어디에 지정할 것인가? 1.1 제품코드와 같은 디렉터리에 test 라는 이름의 테스트 코드 작성 com > example > Account.java TestAccount.java 1.2 제품코드의 하위에 test 디렉터리를 생성하여 테스트 코드 작성 com > example > Account.java > test > TestAccount.java 1.3 제품코드와 동일안 path의 병렬 구조로 테스트 코드 작성 com > example > Account.java com > example > TestAccount.java 두개의 클래스 패스를 모두 설정하여 테스트 코드를 작성한다. 2. 코딩과 검토, 테스트 ..

컴퓨터공학 기초/Java

단위테스트 JUNIT (2)

1. Junit 테스트를 실행하는 방법 일단 본인의 이클립스에 junit 이 플러그인 되어 있다면 실행 버튼으로 간단하게 실행이 가능하다. 안되어 있다면 window > update > 검색해서 junit 플러그인을 설치하도록 하자 아니라면 java junit.swingui.TestRunner 를 실행하여 그래픽 환경에서 테스트 할 소스 파일을 선택하여 테스트 하거나 java junit.textui.TestRunner 테스트할 소스파일이름(확장자 제외) 를 실행하여 테스트 할 수 있다 2. 무엇을 테스트 해야 하는가? 2,1 경계조건 - 값이 기대한 형식과 일치하는가? - 적절한 순서대로 있거나 그렇지 않은가? - 적당한 최소값과 최대값 사이에 있는 값인가? - 값이 존재하는가? - 확실히 충분한 개수의..

컴퓨터공학 기초/Java

단위테스트 JUNIT (1)

1. 단위테스트란 무엇인가? '단위 테스트' 는 테스트 대상이 되는 코드 기능의 아주 작은 특정 영역을 실행해 보는 개발자가 작성한 코드 조각이다. ( 단위 테스트는 전적으로 개발자의 몫이다! 단위테스트 계획서, 결과서 등의 산출물 역시 마찬가지이다.) 2. 어떤 것을 테스트 해야 하는가? 2.1 자신이 생각한 대로 코드가 동작하고 있는지를 증명하라 2.2 디스크가 꽉차고, 네트워크는 끊어지고, 버퍼는 오버플로우가 되는 예외 상황에서도 코드가 동작하는가? 2.3 팀원들이 자신이 작성한 코드의 사용법과 의도를 알수 있도록 단위테스트에 대한 계획과 결과를 문서화 하라 3. 실제 단위 테스트 실행 실제로 단위테스트를 진행하기 위해서는 코드를 모두 완성한 후에 한다고 착각하지 마시길 바란다. 위에서도 명명한 바..