hyper-v에서 centOS 설치

http://warmz.tistory.com/927


mySQL 설치

http://jmnote.com/wiki/CentOS_5%EC%97%90_MySQL_5.5_%EC%84%A4%EC%B9%98_(yum)


nodejs+express 설치

http://seraphmate.tistory.com/100

왜인지는 모르겠는데 CentOS에서 

npm -g install express를 하고나서 설치가 제대로 끝났는데

express abc 를 해도 

bash : express : command not found 가 나온다.


이럴때는 

sudo npm install -g express@2.5.8

요로코롬 하면 되더라.


http://www.sitepoint.com/forums/showthread.php?938814-Cannot-use-Express-after-installing-globally-OS-X-10-8-Mountain-Lion


요기서 찾음


나처럼 고생하지않길..

출처 : http://gamepro.tistory.com/263

///////////////////////////////////////////////////////

for( Iterator= Vector.begin(); Iterator != Vector.end();)

{

Vector.erase(Iterator);

}

///////////////////////////////////////////////////////

for( Iterator = List.begin(); Iterator != List.end(); )

{

List.erase(Iterator);

}

위 두 문장의 차이가 뭘까?

위의 문장에서는 문제가 없지만 아래 문장에서는 에러가 발생한다.

왜 그럴까? erase 함수의 구현은 둘다 똑같은데...

그 이유는....

RandomAccessIterator와 BidirectionalIterator의 차이에 있다.

vector는 해당 원소가 삭제되면 Iterator의 공백을 삭제된 원소다음에 있는 원소 위치로 채워지게 된다. 이는 RandomAccessIterator(멋대로 접근 가능 지시자)라 가능한 듯...(솔직히 컴파일러에 따라 다른지 그것까지는 모르겠음. 일단 Visual Studio에서는 그렇게 작동)

허나 list는 BidirectionalIterator(순서대로 차근차근 접근 가능)이므로 해당 원소가 삭제되면 Iterator는 그 다음 위치를 잃어버리게 되는 것이다. 결국 그 다음 지시자의 위치는 까마득한 별나라로...

이를 위한 해결 방법

가장 확실한 방법은 erase 함수의 리턴값을 이용하는 것이다.

erase 함수의 리턴값이 바로 삭제 원소 다음에 있는 원소 iterator이기 때문...

for( Iterator = List.begin(); Iterator != List.end(); )

{

Iterator = List.erase(Iterator);

}

뭐 굳이 ++을 쓰고 싶다면...

for( Iterator = List.begin(); Iterator != List.end(); )

{

List.erase(Iterator++);

}

이런 식으로 사용하면 된다. 허나....

for( Iterator = List.begin(); Iterator != List.end(); Iterator++)

{

List.erase(Iterator);

}

이런 식의 사용은 오류를 초래... 위에 설명했다시피 Iterator는 erase 함수를 거쳐 이미 갈 곳을 잃었기 때문에 Iterator++ 이란 문장은 엄한 곳만 가리키기게 되는 꼴....

+ Recent posts