Linux에서 STL 프로그래밍 시.

fusilier의 이미지

안녕하세요. 수고 많으십니다.

그 동안 윈도우 환경에서만 작업을 하다 새롭게 리눅스 환경에 적응을 하고 있는 리눅스 초보입니다.
다름이아니오라 리눅스 환경에서의 STL 사용에 대해 여쭐 것이 있어 이렇게 적어봅니다.

질문 내용 : 리눅스에서 STL 사용시 iostream을 꼭 include 해야만 사용이 가능한가요?

처음에는 stdio.h를 사용해서 구현한 뒤 차후에 출력하는 부분을 플랫폼 API의 출력문으로 바꾸려고 했는데,
iostream이 include 되어 있지 않으면 컴파일 자체가 되질 않네요;

초보스러운 질문이라 물어보기까지 많이 망설였는데.. 용기내어 한 번 여쭈어 봅니다.

그럼 수고하시고, 좋은 하루 되세요~ :)

imyejin의 이미지

STL이라면 뭘 말씀하시는 건가요?
예전에 STL이라고 부르는 것은 지금은 C++ 표준라이브러리의 일부로 통합되어 있습니다.
vector, map 같은 컨테이너 라이브러리를 말씀하시는 것이라면
iostream 인클루드 하지 않고도 당연히 쓸 수 있습니다.
문제는 작성하신 코드에 iostream 을 참조하는 부분이 있으니까 안되는 거겠죠.
그리고 stdio.h 는 C 헤더이고 그에 해당하는 C++ 헤더는 csdtio 입니다.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

fusilier의 이미지

안녕하세요. 우선 답변 감사드립니다.
iostream을 참조하는 부분이 없는 것 같은데, 컴파일이 안되네요.

#include

int main(void)
{
vector vi;

return 0;
}

이렇게만 작성해도 컴파일이 되지 않아서요.
초보스러운 질문 죄송합니다;
웹 쪽만 하다가 C++ 하려니 죽을 맛이네요..

kasi의 이미지

c++을 처음하시는거라면

인터넷과 문서로 외에도

c++책을 하나 구입하시는게 좋을듯합니다..

vector 는 컨테이너 입니다... 벡터 에 무엇을 담을지 명시를 해주셔야 하구요..

vector 헤더 파일을 include 해주셔야 합니다.

그리고 네임스페이스에 관한것도 있는데 아무튼 책을 보시는게 좋을듯합니다..

imyejin의 이미지

kasi 님 말씀이 맞고요, 덧붙이자면 질문하실 때는 소스코드 뿐만 아니라 컴파일러 버전과 에러 메시지도 처음 원 글을 쓸 때부터 적어 올려야 도움이 되는 답변을 받을 수 있습니다.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

winner의 이미지

http://kldp.org/node/86703

비슷할지도 모르는 경험을 해 본 적이 있거든요.

제가 보기에는 namespace 문제군요.

ljs0766의 이미지

#include "<"vector">"
 
using namespace std;
 
int main(int argc , char **argv)
{
   vector"<"int">" vi;
 
   return 0;
}

위 코드 처럼 작성해서 해보시던가...

아래 코드 처럼 작성해서 해보세요.

#include "<"vector">"
 
int main(int argc , char **argv)
{
   std::vector"<"int">" vi;
 
   return 0;
}

namespace의 사용을 명시해주지 않으면 두번째 코드처럼 네임스페이스를 함께 적어주셔야 하고요..
그리고 컨테이너 클래스는 어떤 타입의 데이터를 담을 것인가를 알려주셔야 사용가능합니다.

C++을 처음 다루시는 것 같은데 책을 한권 구입하셔서 class/template과 같은 개념들을 익히시는 걸 추천해드립니다.

음 "<"와 ">"를 어떻게 표현해야 할지 모르겠네요...

imyejin의 이미지

vector<int> v;

댓글 적는 곳 바로 밑에 "입력 형식" 이라는 곳을 클릭해 보세요. 설명이 있습니다.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

fusilier의 이미지

안녕하세요?

우선 답변 달아 주신 분들 감사합니다.
vector는 include 한 상태였는데, 게시판에서 태그로 인식해서 지워버렸나 보네요;
앞으로는 질문을 올릴 때 좀 더 자세하게 올리도록 하겠습니다.

결론적으로는 잘 해결이 되었구요.
imyejin 님 말씀대로 cstdio.h를 include 하니 잘 작동 하였습니다.

감사합니다. 많은 도움이 되었습니다 :)

imyejin의 이미지

cstdio.h 가 아니라 cstdio 입니다. C++ 표준 헤더는 확장자가 없습니다. iostream 이나 vector 도 마찬가지죠.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.