Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Артюшин Артём Александрович, ДЗ по Cpp №3 #29

Closed
wants to merge 7 commits into from

Conversation

A1r3t0
Copy link

@A1r3t0 A1r3t0 commented Dec 6, 2024

two_sum

for (std::size_t i = 0; i < ARRAY_SIZE; ++i) {
int complement = target - nums[i];
if (map.find(complement) != map.end()) {
index0 = std::min(map[complement], i);
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

при сборке у меня ругалось на эту строку, когда организовывал цикл через
for (int i = 0; i < ARRAY_SIZE; ++i)
я правильно понимаю, что методы min и max должны принимать только одинаковые типы в качестве аргументов? можно ли как-то организовать функции, используя в цикле for не std::size_t i, а int i? если да, то это реализуется приведением типа int в функциях min и max аргумента i к std::size_t? или есть другой способ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

имею в виду, что в функции min и max в качестве первого аргумента передается map[complement], map объявлен выше (<int, std::size_t>), он выдает в качестве значения по ключу тип std::size_t, соответственно i должно тоже передавать обязательно тип std::size_t?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

можно ли как-то организовать функции, используя в цикле for не std::size_t i, а int i

Можно, но на мой взгляд, беззнаковый арифметический тип подходит лучше. А зачем использовать int для счетчика в цикле?

если да, то это реализуется приведением типа int в функциях min и max аргумента i к std::size_t

Да, но есть риск сужающего приведения. В нашем случае такого не будет, но в общем случае текущее решение лучше.

.DS_Store Outdated
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В пулл-реквесте не должно быть иных изменений, кроме добавления src/two-sum.cpp

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрал остальные файлы, оставил только добавление two-sum.cpp в директории /src

for (std::size_t i = 0; i < ARRAY_SIZE; ++i) {
int complement = target - nums[i];
if (map.find(complement) != map.end()) {
index0 = std::min(map[complement], i);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

можно ли как-то организовать функции, используя в цикле for не std::size_t i, а int i

Можно, но на мой взгляд, беззнаковый арифметический тип подходит лучше. А зачем использовать int для счетчика в цикле?

если да, то это реализуется приведением типа int в функциях min и max аргумента i к std::size_t

Да, но есть риск сужающего приведения. В нашем случае такого не будет, но в общем случае текущее решение лучше.

@czertyaka
Copy link
Owner

Задание принято

@czertyaka czertyaka closed this Dec 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants