Другое С/С++ Вопрос - Ответ

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
Есть двумерный вектор, нужно узнать, входит ли в него определенная строка или нет.
C++:
string str = "asd";
std::vector<std::vector<std::string>>vec;
В обычном векторе использовал find, думаю, для двумерного тоже надо использовать find, только не могу допереть как.
C++:
for (auto& i: vec) {
    if (auto fnd = i.find(string); fnd != i.end()) {
        // Ну типа тут твой код окда
    }
}
 
  • Нравится
Реакции: MeG@LaDo[N] ^_^

Vintik

Через тернии к звёздам
Проверенный
1,526
1,011
Есть двумерный вектор, нужно узнать, входит ли в него определенная строка или нет.
C++:
std::string str = "asd";
std::vector<std::vector<std::string>>vec;
В обычном векторе использовал find, думаю, для двумерного тоже надо использовать это, только не могу допереть как именно.
Ну если вариант "в лоб", то можно:
C++:
bool isStringInVector(vector<vector<string>> yourVector, string yourString)
{
    for (vector<string> w : yourVector)
    {
        for (string y : w)
        {
            if (y == yourString)
            {
                return true;
            }
        }
    }
    return false;
}
В твоём случае перед всеми словами vector и string допиши std::
 
  • Bug
Реакции: kin4stat

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
Ну если вариант "в лоб", то можно:
C++:
bool isStringInVector(vector<vector<string>> v)
{
    for (vector<string> int w : v)
    {
        for (string y : w)
        {
            if (y == "твоя строка")
            {
                return true;
            }
        }
    }
    return false;
}
копировать вектор векторов при передаче в функцию, потом копировать вложенный вектор при итерации по вектору векторов, потом еще и копирование строки при итерации по вектору. Красава. 146 динамических аллокаций из 10
 

Vintik

Через тернии к звёздам
Проверенный
1,526
1,011
копировать вектор векторов при передаче в функцию, потом копировать вложенный вектор при итерации по вектору векторов, потом еще и копирование строки при итерации по вектору. Красава. 146 динамических аллокаций из 10
Понятно... По факту.
C++:
bool isStringInVector(vector<vector<string>> &yourVector, string &yourString)
{
    for (int w = 0; w < yourVector.size(); ++w)
    {
        for (int y = 0; y < yourVector[w].size(); ++y)
        {
            if (yourVector[w][y] == yourString)
            {
                return true;
            }
        }
    }
    return false;
}
Устраивает?
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
Понятно... По факту.
C++:
bool isStringInVector(vector<vector<string>> &yourVector, string &yourString)
{
    for (int w = 0; w < yourVector.size(); ++w)
    {
        for (int y = 0; y < yourVector[w].size(); ++y)
        {
            if (yourVector[w][y] == yourString)
            {
                return true;
            }
        }
    }
    return false;
}
Устраивает?
range based цикл по ссылке уже видимо не по канону...
А еще using namespace std
Все еще 146 баллов из 10
 
  • Ха-ха
  • Нравится
Реакции: sc6ut и Vintik

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
на i.find ругается:
Ошибка E0135 class "std::vector<std::string, std::allocator<std::string>>" не содержит члена "find"
тоды попробуй вот так:
C++:
#include <algorithm>
#include <vector>

for (auto& i: vec) {
    if (auto fnd = std::find(i.begin(), i.end(), str); fnd != std::end(i)) {
        // Ну типа тут твой код окда
    }
}
 
  • Нравится
Реакции: checkdasound

Compich

Известный
236
43
Если такой вопрос задан — прости прощай разработке до тех пор, пока не будут подобные вопросы и будет интерес залезть в поисковики всемирной паутины.
Большая проблема БХ в том, что здесь есть куча людей, возомнивших себя если не Страуструпами и Торвальдсами, то программистами рангом чуть пониже
Если я задал такой вопрос, я идиот?
Ещё до того, как зайти на БХ я нашёл кучу сайтов. Элементарный пример - Microsoft Docs. А вопрос этот я задал, чтобы спросить, что могут посоветовать именно пользователи БХ. Может, это будет что-то, что я ещё не успел найти
Повторю вопрос:
Как лучше всего обучиться программированию на Win32 API?
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
И чем это плохо?)
Засирание неймспейса. Если это будет в h файле, то эта хуета может протянутся на весь проект
Да и вообще считается плохой практикой
Ты вот думаешь никто так нормальный не делает, но мне хватило пару примеров
Большая проблема БХ в том, что здесь есть куча людей, возомнивших себя если не Страуструпами и Торвальдсами, то программистами рангом чуть пониже
Если я задал такой вопрос, я идиот?
Ещё до того, как зайти на БХ я нашёл кучу сайтов. Элементарный пример - Microsoft Docs. А вопрос этот я задал, чтобы спросить, что могут посоветовать именно пользователи БХ. Может, это будет что-то, что я ещё не успел найти
Повторю вопрос:
Как лучше всего обучиться программированию на Win32 API?
проблема не в том что тут страуструпы одни сидят, проблема в том, что ты задал глупый вопрос, по типу «Как кушать кастрюлей»
 
  • Нравится
Реакции: SR_team

Vintik

Через тернии к звёздам
Проверенный
1,526
1,011
range based цикл по ссылке уже видимо не по канону...
А еще using namespace std
Все еще 146 баллов из 10
Уже придирки. Нэймспейс - нормальная практика, кроме тебя нигде не слышал, что не рекомендуется. Какой-то ты грубый
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,650
2,535
Уже придирки. Нэймспейс - нормальная практика, кроме тебя нигде не слышал, что не рекомендуется. Какой-то ты грубый
 
  • Нравится
Реакции: Hatrig и sc6ut

sc6ut

неизвестный
Модератор
382
1,089
кроме тебя нигде не слышал, что не рекомендуется
 
  • Нравится
Реакции: tinkoir

Dark_Knight

Me, me and me.
Друг
4,078
2,096
Засирание неймспейса. Если это будет в h файле, то эта хуета может протянутся на весь проект
Да и вообще считается плохой практикой
Хех. В целом я с этим согласен, но на этапе разработки я обычно сразу using namespace std использую, чтобы было проще писать и не прописать using std::string, std::vector и т.д. каждый раз, когда я добавляю какой-то елемент с STL. Потом когда результат работы программа работает нормально и её поведение работы меня устраивает, то уже прописывю все юзинги, которые мне нужны и все.
PS: Еще есть такой грех как использование авто где только можно в коде программы :D
 
  • Bug
  • Ха-ха
Реакции: kin4stat и sc6ut