본문 바로가기

stl

(6)
Cygwin + Eclipse에서 STL unresolved inclusion문제 리눅스에서 개발을 하다가 다른 컴퓨터에서도 동일한 환경을 셋팅하고 싶은데, 어쩔수 없이 윈도우 환경으로 꾸며야 해서 cygwin, eclipse로 환경을 구성하였다.그런데, 아래처럼 STL 헤더를 include하면 unresolved inclusion 문제가 생긴다. 컴파일에는 문제가 안생기는데, 코딩시 eclipse가 indexing을 못해서 intellisense같은 code assist를 사용못하게 된다. 이 문제를 해결하려면,Project Properties > C/C++ General > Processor Included Paths, Macros, etc > Provider 탭에서 CDT GCC Built-in Compiler Settings Cygwin을 선택하면 된다.
STL map에서 insert와 [] operator 사용시 주의사항 보통 map을 사용할때, insert 보다는 간편하게 [] operator를 사용했다. Scott Meyers의 'Effective STL'이라는 책을 보니 "map에 추가를 할 때는 insert를, 이미 저장된 데이터의 갱신은 [] operator가 더 효율적"이라고 한다. 참고. ex) map testmap;testmap.insert(map::value_type(k, v)).first->second = v; //k=key, v=value 또는 testmap.insert(pair(k,v));
error: ‘>>’ should be ‘> >’ within a nested template argument list 이건 뭥미.. 윈도우에서는 잘 되던 컴파일이.. 겨우 띄어쓰기 하나때문에 걸린단 말인가.... STL에서 템플릿을 쓸때, '>>' 대신에 '> >'로 써야한단다.. 예를 들면, std::vector trajectory; 를 std::vector trajectory; 로 써야한다는 것... 아놔.. 별게 다...ㅡ,.ㅡ
G++ 에서 STL의 transform을 사용할때 발생하는 문제점의 해결방법 윈도우에서 어플리케이션을 짜놓고 리눅스로 바꾸는 과정중에 STL의 transform 함수에서 문제가 발생했다. transform(strJointtype.begin(), strJointtype.end(), strJointtype.begin(), (int(*)(int))tolower); 이 코드를 컴파일 하니.. error: no matching function for call to ‘transform(__gnu_cxx::__normal_iterator, __gnu_cxx::__normal_iterator, __gnu_cxx::__normal_iterator, ) 위와같이 에러가 뜬다. 이것을 해결하기 위해 구글링을 해보니, 답이 바로 나온다. 답은 아래 웹페이지에 나온다. http://osdir.com/m..
[STL] string tokenizer 이전에 boost 라이브러리를 사용해서 stirng tokenizer를 만드는 방법을 간단하게 이야기 했었다. 이번에는 STL을 사용해서 string tokenizer를 만든 예를 올려본다. 이 클래스를 기반으로 text형태의 파일을 처리하는데 이용할 수 있을것이다. 소스를 올려봅니다. 그리고, 간단한 사용예를 보여드리겠습니다. stringTokenizer.cpp #include "stdafx.h" #include "StringTokenizer.h" stringTokenizer::stringTokenizer(const string& inputstring, const string& seperator) : _input(inputstring), _delimiter(seperator) { split(); } s..
표준 라이브러리 STL(Standart Template Library)도 종류가 여러가지가 있다. 그리고, 용도에 따른 다양한 표준화된 라이브러리가 존재한다. 개발할 소프트웨어에 표준화된 코드를 삽입하는 것은 소프트웨어가 타 라이브러리에 의존성이 커진다고 보기보단, 생산성 또는 확장성에 좀더 유리해졌다고 보면 될것같다. 퍼포먼스도 안나오는 라이브러리 만들어서 사용하기보단 인터페이스와 최대한 언어의 표준에 맞게 작성된 라이브러리를 구해다가 사용하는게 더 좋다.. STL의 종류 (1) Dinkum STL(http://www.dinkumware.com) VIsual C++에 탑재된 표준 템플릿이라고 한다. (2) SGI STL(http://www.sgi.com/tech/stl) (3) STLport (http://www.st..