не могли бы вы обяснить как мне работать с вектором если элементы его — это строки
код:
vector < string > vData;
string temp = "11";
vData.push_back(temp);
vData.push_back(temp);
vData.push_back(temp);
Так вот как пройтись по вектору стобы просмотреть все его элементы
так не работает
for (int i = vData.begin(); i < vData.end(); i++)
{
cout << vData[i];
}
ps.
Не пинайте сильно...
Лабу делаю
Здравствуйте, Hermes, Вы писали:
H>Так вот как пройтись по вектору стобы просмотреть все его элементы
H>так не работает
H>H>for (int i = vData.begin(); i < vData.end(); i++)
H>{
H>cout << vData[i];
H>}
H>
Надо через итераторы:
typedef vector<string> stringvector;
stringvector vData;
vData.push_back(...)
...
for (stringvector::const_iterator iter = vData.begin();
iter != vData.end(); ++iter) {
cout << *iter;
}
Здравствуйте, Hermes, Вы писали:
H>не могли бы вы обяснить как мне работать с вектором если элементы его — это строки
H>код:
H>H>vector < string > vData;
H>string temp = "11";
H>vData.push_back(temp);
H>vData.push_back(temp);
H>vData.push_back(temp);
H>
H>Так вот как пройтись по вектору стобы просмотреть все его элементы
H>так не работает
H>H>for (int i = vData.begin(); i < vData.end(); i++)
H>{
H>cout << vData[i];
H>}
H>
H>ps.
H>Не пинайте сильно...
H>Лабу делаю
может так:
for(int i = 0; i < vData.size(); i++)
{
cout << vData[i];
}
Не хочет он
не сомпилиться на строке
cout << *iter;
с ошибкой:
c:\Projects\OPT\Lab2\cBase.cpp(37): error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'const std::allocator<_Ty>::value_type' (or there is no acceptable conversion)
with
[
_Ty=std::string
]
Здравствуйте, Hermes, Вы писали:
H>Не хочет он
H>не сомпилиться на строке
H>H>cout << *iter;
H>
H>с ошибкой:
H>c:\Projects\OPT\Lab2\cBase.cpp(37): error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'const std::allocator<_Ty>::value_type' (or there is no acceptable conversion)
H> with
H> [
H> _Ty=std::string
H> ]
преобразуй string в char*
какой-то метод был... c_str() чтоли...
исправил на...
vector < const char* > vData;
vData.push_back(temp.c_str());
vData.push_back(temp.c_str());
....
for (int i=0; i < vData.size(); i++) {
cout << vData[i];
}
ничего не выводит...
Здравствуйте, Hermes, Вы писали:
H>исправил на...
H>H>vector < const char* > vData;
H>vData.push_back(temp.c_str());
H>vData.push_back(temp.c_str());
H>....
H>for (int i=0; i < vData.size(); i++) {
H> cout << vData[i];
H>}
H>
H>ничего не выводит...
Я предлагал писать:
for (int i=0; i < vData.size(); i++) {
cout << vData[i].c_str() << endl;
}
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Hermes, Вы писали:
H>>исправил на...
H>>H>>vector < const char* > vData;
H>>vData.push_back(temp.c_str());
H>>vData.push_back(temp.c_str());
H>>....
H>>for (int i=0; i < vData.size(); i++) {
H>> cout << vData[i];
H>>}
H>>
H>>ничего не выводит...
А>Я предлагал писать:
А>for (int i=0; i < vData.size(); i++) {
А> cout << vData[i].c_str() << endl;
А>}
неа...
нехочет он и так.
ругается:
c:\Projects\OPT\Lab2\cBase.cpp(39): error C2228: left of '.c_str' must have class/struct/union type
#include <string>
#include <vector>
#include <iostream>
int main()
{
std::vector<std::string> vData;
std::string temp = "11";
vData.push_back(temp);
vData.push_back(temp);
vData.push_back(temp);
// Хошь так
for (int i = 0; i < vData.size(); i++)
{
std::cout << vData[i] << std::endl;
}
// Хошь так
for (std::vector<std::string>::const_iterator it = vData.begin(); it != vData.end(); ++it)
{
std::cout << *it << std::endl;
}
}
Учите матчасть...