vector사용 관련

asleea의 이미지

char형 배열의 vector를 만드려고 합니다.

예를 들어 char a[40]을 동적으로 여러개 만드려는 의도로

이때 아래와 같이 선언을 하였습니다.

vector<char[40]> a

맞게 선언을 한건지.벡터를 사용하는데 익숙하지 않아서

만약 맞게 선언한거라면 어떻게 사용을 해야 되나요

push_back을 쓰려고 만지고 있는데 계속 에러가 뜨네요 .ㅜ

char aa;
sprintf(aa, "sdfsdfsdf");
a.push_back(aa);
상량의 이미지

<string>을 사용하는게 편할것 같은데요?

vector<char[40]> aa; 만 적은 경우에 올바르지 않은 instantiation이라고 뜨는걸로 봐서 배열은 그렇게 만들 수 없는것 같고, 차라리 string도 사용해서

vector<string> aaa;
aaa.push_back(string("Hello World!!!111"));

식으로.

klenui의 이미지

윗분께서 답변하신 방식으로 코딩하는게 가장 객체지향적입니다만, 굳이 char[40]을 사용하겠다고 한다면 아래와 같은 식으로 하는게 가장 자연스러울 겁니다.

#include <vector>
#include <stdio.h>
 
using namespace std;
 
struct _a
{
  char a[40];
};
 
int main()
{
  vector<_a> a;
 
  _a t;
  sprintf(t.a, "abc");
  a.push_back(t);
  return 0;
}

vector<har[40]>은 안된다고 보시는게 맞는것 같습니다.

근무시간이라 거시기 한데, 금방 답변할 수 있는 거라 적어봅니다....