У меня есть вопросы о инициализации C++.C++ String Инициализация векторов
В Java: если я хочу пустой StringBuffer, я должен использовать
StringBuffer sb = new StringBuffer();
инициализировать пустой буфер строки.
В C++: Если я хочу использовать пустую строку, я могу просто объявить
std::string str;
или std::string str = "";
В реальных проектах я должен всегда писать как вторую форму?
Как насчёт объявить о пустых векторах?
vector<int> vec;
В порядке? или я должен дать некоторые нулевые значения для этого vec?
Это, вероятно, лучше для programers.stackexchange.com, так как это открытый вопрос. Тем не менее, на мой взгляд, вектор отлично подходит для общего использования, использует его функции-члены, такие как 'push_back', чтобы добавить членов и позволить ему обрабатывать остальные. Что касается строки, если вы собираетесь добавить в пустую строку, я бы явно назначил ее для удобочитаемости, но в остальном она не нужна. – IllusiveBrian
Большое вам спасибо за ваш ответ. Причина, по которой я спрашивал об этом, заключается в том, что несколько месяцев назад, когда я взял интервью у работы, интервьюер спросил меня о том, почему я не инициализировал пустой вектор, поэтому мне интересно, как инициализировать это на C++. – user2840454
Не путайте его с 'vector * vec = new vector ()', который более или менее аналогичен вашему примеру Java. Здесь вы инициализируете указатель на местоположение выделенного («нового») вектора. Если вы только пишете 'vector vec;' это распределение стека, которое происходит автоматически. –
leemes