32 / 17 / 3
Регистрация: 05.09.2011
Сообщений: 151
1

Цикл в цикле? Каков лучший вариант?

19.03.2013, 20:10. Показов 959. Ответов 7
Метки нет (Все метки)

Господа, поделитесь опытом, пожалуйста, для общего блага среди начинающих.

Как лучше ввсего организовать цикл в цикле для решения такой задачи: есть два вектора, необходимо сравнивать каждый элемент первого вектора со всеми элементами второго. Получается (если V_2.size()=10) один шаг внешнего цикла к 10 шагам внутреннего... Какая конструкция наиболее надежная? Спасибо за внимание!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2013, 20:10
Ответы с готовыми решениями:

Лучший вариант проверки вероятности
Всем привет. Столкнулся с таким вопросом. Нужно организовать хорошую и более точную систему...

Лучший вариант записи в .txt
Кто нить замерял как лучше вносить данные в текстовый фаил На данный момент из списка закидываю в...

Лучший вариант для работы с Modbus
Здравствуйте. Внезапно у меня появилась задача: организовать передачу данных от приложения с...

Лучший вариант локализации своего интерфейса
Есть задача изменять язык интерфейса программы. Сейчас делаю так: есть статический класс...

7
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
19.03.2013, 20:39 2
oleg@tor1, ну обычно так делается

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
26
27
28
29
30
31
32
33
34
35
// obr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main()
{
    typedef vector<int> VECTOR;
    VECTOR coll1;
 
    for(int i = 1; i <= 10; ++i)
        coll1.push_back(i);
 
    VECTOR coll2(coll1.size());
 
    copy(coll1.rbegin(), coll1.rend(),      //интервал
        coll2.begin());                     //приемник
    
    VECTOR::iterator pos;
    for(int i = 0; i < coll1.size(); ++i)
        for(int j = 0; j < coll2.size(); ++j)
        {
            if(coll1[i] == coll2[j])
                ;//do somethind
            else
                ;//do somethind
        }
 
    cout << "\n\n";
    return 0;
}
1
32 / 17 / 3
Регистрация: 05.09.2011
Сообщений: 151
19.03.2013, 20:51  [ТС] 3
Благодарю за участие. Будет интересно узнать мнения других профессионалов.
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
19.03.2013, 20:54 4
oleg@tor1, ахахах...) я сам учусь
0
Mobile Software Engineer
Эксперт С++
5365 / 1584 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
19.03.2013, 20:58 5
я бы так делал:
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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>
 
int main ()
{
    int fArray[] = {1, 2, 3, 4, 5};
    std::vector <int> fVector (fArray, fArray + 5);
 
    int sArray[] = {5, 4, 3, 2, 1, -1, -2, -3, -4, -5};
    std::vector <int> sVector (sArray, sArray + 10);
 
    for (auto fCurrNum: fVector) {
        for (auto sCurrNum: sVector)
            if (fCurrNum == sCurrNum)
                std::cout << fCurrNum << " = " << sCurrNum << ";";
            else
                std::cout << fCurrNum << " <> " << sCurrNum << ";";
        std::cout << std::endl << std::endl;
    }
 
    return 0;
}
1
погромист
414 / 250 / 30
Регистрация: 27.08.2012
Сообщений: 550
19.03.2013, 21:02 6
Цитата Сообщение от Ev[G
eN;4279139]for (auto
а можно поинтересоваться почему вы написали так? Разве компилятор сам не оптимизирует код и не вставляет где нужно auto или register?
0
5224 / 3196 / 362
Регистрация: 12.12.2009
Сообщений: 8,101
Записей в блоге: 2
19.03.2013, 21:18 7
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от oleg@tor1 Посмотреть сообщение
есть два вектора, необходимо сравнивать каждый элемент первого вектора со всеми элементами второго.
Все зависит от цели данного сравнения. В некоторых случаях это можно сделать в одном цикле, в теле которого вызывать какой-нибудь stl::algorithm.

Добавлено через 59 секунд
Цитата Сообщение от coloc Посмотреть сообщение
Разве компилятор сам не оптимизирует код и не вставляет где нужно auto или register?
Угу, комплиятор знает как сделать лучше. Но у Ev[G]eN auto используется для другого - автоматическое определение типа, это фишка С++11.
3
32 / 17 / 3
Регистрация: 05.09.2011
Сообщений: 151
19.03.2013, 22:17  [ТС] 8
Например, имеется текстовый файл, содержащий текст. Найти слово, встречающееся в каждом предложении. Тогда цикл первый перебор каждого слова одного из предложений (самого короткого, думаю), а цикл второй сравнение данного слова с каждым в ост. части текста.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2013, 22:17
Помогаю со студенческими работами здесь

Лучший вариант размещения robots.txt
Использую на продакшене django+nginx+gunicorn. Как лучше отдавать robots.txt? Первый вариант:...

Системы счисления, выбрать лучший вариант
Вот задача, мучает меня уже давно.. Дано целое неотрицательное число в I-ричной системе счисления....

Прошу предложить лучший вариант перебора массива
Всем доброго дня, такой вопросик. есть массив int array = { 1, 2, 3, 4, 5, 6, 7 }; ...

Лучший вариант реализации разделителя контента на сайте
У кого какие мысли как такое лучше реализовать?) Такое чудо не одно а выступает в качестве...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru