Definicja nowej zmiennej na podstawie elementu tablicy

2015-02-20 17:13
mathsicist
0

Dzień dobry,
próbuję wstawić w określone miejsca stringa elementy tablicy za pomocą str.insert. Niestety napotykam dziwny błąd o treści:

std::string *arrayTypes
Error: no suitable counstructor exist to convert from "char" to "std::basic_string<char, std::char_traits<char>, std::allocator<char>>"

Przyznam, że nic z tego nie rozumiem. Zamieszczam fragment kodu:

void fill(int kolumny, int types, string ringeTemplate, string *arrayTypes)
{
    string filledTemplate, line;
    istringstream stream(ringeTemplate); //na potrzebę getline

    for (int i = 0; i < kolumny; i++)
    {
        for (int j = 0; j < types; getline(stream, line))
        {
            filledTemplate = filledTemplate + line + "\n"; //jeżeli nie ma potrzeby wklejania
            if (int pos = line.find(";") != string::npos) //jeżeli znaleziono miejsce, gdzie ma być dodany elem. tablicy
            {
                string data = arrayTypes[i][j]; //tutaj Visual wskazuje błąd
                line.insert(pos - 1, data);
                filledTemplate = filledTemplate + line + arrayTypes[i][j] + ";\t\n";
                j++;
            }
        }
    }
}

zdecydowałem się na wprowadzenie nowej zmiennej "data", ponieważ line.insert miał jakiś z tym problem. Proszę o wskazówki i wskazanie błędu

zamiana znacznika <quote> na <code class="none"> - @furious programming

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26
Treść błędów wstawiaj w znaczniki &lt;code=none&gt; - furious programming 2015-02-20 22:21

Pozostało 580 znaków

2015-02-20 20:09
0

Jeśli arrayTypes to dynamiczna tablica stringów, to arrayTypes[i][j] to jeden znak. Kompilator mówi, że nie umie konwertować jednego znaku na string. Możliwe rozwiązanie: http://www.cplusplus.com/forum/beginner/4967/

Swoją drogą jak już używasz rzeczy typu string i istringstream to dlaczego ohydna tablica dynamiczna string*? Wrzuć to do vector<string>.

Pozostało 580 znaków

2015-02-21 12:37
mathsicist
0

Dzięki za odpowiedź, niestety problem leżał gdzie indziej: zamiast *arrayTypes, powinienem wpisać **arrayTypes. Może ktoś mi powie dlaczego? Wpadłem na to przypadkiem.

twonek napisał(a):

Swoją drogą jak już używasz rzeczy typu string i istringstream to dlaczego ohydna tablica dynamiczna string*? Wrzuć to do vector<string>.

Nie wiem, dopiero się uczę. Nigdy nie używałem biblioteki vector. Może przy następnym projekcie spróbuję?

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0