Переменное количество параметров c++
Как передать неопределённое количество параметром, но если всего 1 параметр то передать только в первое место, если два то в два места
void func(...)
{
std::string arr[5] = { "qwe",/*вот сюда №1*/ ,"rty", /*и сюда №2*/ };
std::string u;
for (int i = 0; i < 5; ++i)
u += arr[i];
const char* d = u.c_str();
}
Ответы (1 шт):
Автор решения: AR Hovsepyan
→ Ссылка
Странный код конечно у вас для ваших намерений, но все же:
void func(std::initializer_list<std::string> arg)
{
auto p = arg.begin(), q = arg.end();
std::string arr[5] =
{ "qwe", *p++,"rty", (p == q) ? "" : *p++, (p == q) ? "" : *p};
std::string u;
for (int i = 0; i < 5; ++i)
u += arr[i];
const char* d = u.c_str();
//...
}
int main() {
func( { "123", "456", "789" });
func({ "abc", "def" });
return 0;
}