Path: csiph.com!news.mixmin.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c++ Subject: Re: initial size of a std::vector of std::strings Date: Wed, 07 Dec 2022 13:49:41 -0800 Organization: None to speak of Lines: 50 Message-ID: <87edta6g0a.fsf@nosuchdomain.example.com> References: MIME-Version: 1.0 Content-Type: text/plain Injection-Info: reader01.eternal-september.org; posting-host="e9284c35170f8649df9b0e58c7fb123c"; logging-data="697560"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+XjXl3tKz4f3lxAOPm9Jb+" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) Cancel-Lock: sha1:fNaozsrgwFESbefWBrq76oDraAE= sha1:yN9RwAStkk1+Xa8YtL3m9cMDfRk= Xref: csiph.com comp.lang.c++:87736 Lynn McGuire writes: [...] > I am trying to declare a vector with max_ncp strings in a struct. > struct component_data { > std::vector component_names [max_ncp]; > doublereal heatoffusionatmeltingpoint [max_ncp]; > doublereal meltingpointtemperature [max_ncp]; > doublereal sublimationtemperature [max_ncp]; > doublereal triplepointtemperature [max_ncp]; > doublereal triplepointpressure [max_ncp]; > }; > > Visual Studio 2015 does not like > std::vector component_names (max_ncp); > or > std::vector component_names (max_ncp, ""); How does it express its dislike? Both work for me: #include #include #include int main() { int max_ncp = 42; { std::vector component_names(max_ncp); std::cout << component_names.size() << ' '; } { std::vector component_names(max_ncp, ""); std::cout << component_names.size() << '\n'; } } The output is "42 42". > But it does like > std::vector component_names [max_ncp]; > But it does not work. That defines an array (not a std::array, just a C-style array object) of max_ncp vectors. I think you want a single vector. Do you want to set the initial size or the initial capacity? -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com Working, but not speaking, for XCOM Labs void Void(void) { Void(); } /* The recursive call of the void */