문자열로 구성된 벡터 배열 초기화
문자열의 벡터 배열을 초기화하는 것이 가능할까요?
예를 들면 :
static std::vector<std::string> v;
// 클래스 멤버로 선언
나는 static
초기화하고 문자열로 채우기 위해 사용했습니다. 또는 일반 배열처럼 초기화 할 수없는 경우 생성자에 채워야합니다.
일종의:
class some_class {
static std::vector<std::string> v; // declaration
};
const char *vinit[] = {"one", "two", "three"};
std::vector<std::string> some_class::v(vinit, end(vinit)); // definition
end
vinit+3
나중에 길이가 변경되면 작성 하고 최신 상태로 유지할 필요가 없습니다 . 다음과 같이 정의하십시오.
template<typename T, size_t N>
T * end(T (&ra)[N]) {
return ra + N;
}
cpp11 ( -std=c++0x
필요한 경우 플래그로 활성화)을 사용하는 경우 다음과 같이 벡터를 간단히 초기화 할 수 있습니다.
// static std::vector<std::string> v;
v = {"haha", "hehe"};
2017 년이지만이 스레드는 내 검색 엔진에서 최상위이며, 오늘은 다음 방법이 선호됩니다 (초기화 목록).
std::vector<std::string> v = { "xyzzy", "plugh", "abracadabra" };
std::vector<std::string> v({ "xyzzy", "plugh", "abracadabra" });
std::vector<std::string> v{ "xyzzy", "plugh", "abracadabra" };
에서 https://en.wikipedia.org/wiki/C%2B%2B11#Initializer_lists
const char* args[] = {"01", "02", "03", "04"};
std::vector<std::string> v(args, args + 4);
그리고 C ++ 0x에서는 다음을 활용할 수 있습니다 std::initializer_list<>
.
http://en.wikipedia.org/wiki/C%2B%2B0x#Initializer_lists
MSVC 2010 솔루션, std::initializer_list<>
벡터는 지원하지 않지만std::end
const char *args[] = {"hello", "world!"};
std::vector<std::string> v(args, std::end(args));
@ Moo-Juice와 동일 :
const char* args[] = {"01", "02", "03", "04"};
std::vector<std::string> v(args, args + sizeof(args)/sizeof(args[0])); //get array size
를보세요 boost::assign
.
C ++ 0x에서는 배열처럼 컨테이너를 초기화 할 수 있습니다.
http://www2.research.att.com/~bs/C++0xFAQ.html#init-list
참고 URL : https://stackoverflow.com/questions/4268886/initialize-a-vector-array-of-strings
'Programing' 카테고리의 다른 글
하나의 파일을 포드에 공유 / 마운트하는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.20 |
---|---|
MySQL 변경 테이블 추가 필드 이전 또는 이후 필드가 이미 존재 (0) | 2020.11.20 |
EditText에서 Enter 키를 방지하지만 텍스트는 여러 줄로 표시됩니다. (0) | 2020.11.20 |
Groovy 스크립트에 전달 된 인수를 캡처하는 방법은 무엇입니까? (0) | 2020.11.20 |
'System.Web.Helpers.Json..cctor ()'메서드가 'System.Web.Helpers.Json.CreateSerializer ()'메서드에 액세스하려는 시도가 실패했습니다. (0) | 2020.11.20 |