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

вектор string в масив указателей на char - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считать комманды пока они есть... http://www.cyberforum.ru/cpp-beginners/thread350739.html
Здравствуйте! Есть команды в файле: ADD 192168812 ADD 125 ADD 321 EXTRACT EXTRACT CLEAR ADD 7 ADD 555
C++ Центр тяжести Горю! По координатам вершин многоугольника требуется найти координаты его центра тяжести. Стороны многоугольника друг с другом не соприкасаются (за исключением соседних - в вершинах) и не пересекаются. Площадь многоугольника не равна нулю. Технические условия Входные данные В первой строке находится число N, в следующих N строках - пары чисел - координаты точек. Если соединить... http://www.cyberforum.ru/cpp-beginners/thread350729.html
C++ Семафоры(7 потоков)
Требуется создать программу которая будет создавать 7 потоков и в каждом выполнять операцию а=а-1(изначально установить а=10). Доя решение задачи взаимного исключения использовать семафоры. Семафоры через библиотеку <windows.h>.( ReleaseSemaphore, WaitForSingleObject,CreateThread.) Кто умеет прошу помочь. Можно создать с 2-мя потоками, я думаю я пойму общий принцип. Заранее спасибо!
Клиент к игре **** название abclient C++
Добрый вечер. Вот хотел бы узнать,с помощью чего можно сделать такой клиент,и новичок способен ли его сделать? И есть ли какой урок(И) по данной сборке,т.е не именно по аб... а по созданию таких вот штук?!
C++ С Днем програмиста!!! http://www.cyberforum.ru/cpp-beginners/thread350697.html
!!!!!!!
C++ Иерархия геометрических объектов Иерархия геометрических объектов наследием: класс точка -> класс треугольник -> класс квадрат -> класс прямоугольник. на си++ и mfc , помогите пожалуйсто а то у меня даже мыслей никаких нету...( подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.09.2011, 09:29     вектор string в масив указателей на char
Сыроежка,

the values in this array should not be modified in the program and are only guaranteed to remain unchanged until the next call to a non-constant member function of the string object.
Не вижу в моем коде вызова неконстантной функции от строк в векторе. Не вижу в моем коде изменения указателей, возвращаемых c_str(). Где некорректность?

Добавлено через 5 минут
1
2
Returns: A pointer to the initial element of an array of length size() + 1 whose first size() ele-
ments equal the corresponding elements of the string controlled by *this and whose last element is a
null character specified by charT().
Requires: The program shall not alter any of the values stored in the array. Nor shall the program treat the
returned value as a valid pointer value after any subsequent call to a non-const member function of the
class basic_string that designates the same object as this.
Пункт 21.3.6 стандарта 2003 года.

Добавлено через 6 минут
Если столь важна именно копия, тогда так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <cstring>
#include <iterator>
#include <string>
#include <vector>
#include <algorithm>
 
int main()
{
    std::vector<std::string> strings = {"hello", "and", "what"};
    std::vector<char*> vec;
    std::for_each(strings.begin(), strings.end(), [&vec](const std::string& str)
    {
        vec.push_back(strdup(str.c_str()));
    });
    std::vector<char*> chars;
    std::for_each(vec.begin(), vec.end(), [&chars](const char* str)
    {
         chars.push_back(strdup(str));
    });
    std::copy(chars.begin(), chars.end(), std::ostream_iterator<char*>(std::cout, "\n"));
    std::for_each(vec.begin(), vec.end(), [](char* ptr) {free(ptr);});
    std::for_each(chars.begin(), chars.end(), [](char* ptr) {free(ptr);});
    return 0;
}
 
Текущее время: 07:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru