Форум программистов, компьютерный форум CyberForum.ru

std::string в char* - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив: используя операции + или -, из элементов массива получить в итоге значение больше 7 http://www.cyberforum.ru/cpp-beginners/thread602685.html
С клавиатуры задается массив чисел. Нужно, используя операции + или - получить в итоге значение больше 7. Причем предложить все возможные варианты. Что-то вроде того? #include <iostream> using namespace std; const int size=10; int main() { setlocale(0,"rus");
C++ Рекурсивная функция, число и показатель степени Ребят помогите пожалуйста не могу понять как решить данную задачу: Напишите программу, которая запрашивает число и показатель степени.Напишите рекурсивную функцию, которая возводит число в степень путем многократного умножения числа на само себя, т.е если число равно 2, а показатель степени равен 4, то эта функция должна возвратить число 16. Вот не пойму как это реализовать, помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread602675.html
Нахождение минимального кол-ва слов C++
Подскажите как мне найти строку, содержащую наименьшее количество слов, и вывести её на экран монитора? в программе register char *mas = new char; register char *m = mas; register char *uk; cout << "Vvod stroki 1: "; cin.getline( m, 80 ); cout << "Vvod stroki 2: "; cin.getline( m+81, 80 );
C++ Ошибка "error C2011: переопределение типа"
struct Tunit { public : int team; int team_agricultural; POINT location; POINT moveLocation; float max_helf; float current_helf; int ID_cel;
C++ Вычислить сумму элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread602614.html
Как вычислить сумму положительных элементов матрицы А размером N*N, расположенных над главной диагональю?
C++ Перевести с паскаля на с++ Люди) есть проблемко с курсовой задачкой, вроде как нашел нужную, да вот только она не на том языке что мне нужен =( задачка большая, звучит так: Создать список, содержащий сведения об отправлении поездов дальнего следования с Казанского вокзала. Структура записи: номер поезда, станция назначения, время отправления, время в пути, наличие билетов. Кол-во записей запрашивается с клавиатуры.... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.06.2012, 17:05     std::string в char*
5 The char-like objects in a basic_string object shall be stored contiguously. That is, for any basic_string
object s, the identity &*(s.begin() + n) == &*s.begin() + n shall hold for all values of n such that 0
<= n < s.size().
Итого - по кускам строка хранится НЕ может. Она обязана хранится в непрерывной области памяти.

6 References, pointers, and iterators referring to the elements of a basic_string sequence may be invalidated
by the following uses of that basic_string object:
— as an argument to any standard library function taking a reference to non-const basic_string as an
argument.234
— Calling non-const member functions, except operator[], at, front, back, begin, rbegin, end, and
rend.
Итого при вызове не константных функций, за исключением некоторых - итераторы, указатели могут стать не валидными.

const charT* c_str() const noexcept;
const charT* data() const noexcept;
1 Returns: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
2 Complexity: constant time.
3 Requires: The program shall not alter any of the values stored in the character array.
Итого - не генерируется никакой новой строки.

Что, в стандарт сложно заглянуть?

Добавлено через 26 минут
Хотя все понятно. В стандарте С++98 ничего такого не описано.
 
Текущее время: 12:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru