Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88

Завернутые векторы

13.12.2010, 17:47. Показов 1346. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать програму, которая складывает два завернутых вектора фиксированной длинны. Вообщем прграма из трех файлов, выдает ошибку

Linking...
main.obj : error LNK2001: unresolved external symbol "public: static unsigned int w_v::sz" (?sz@w_v@@2IA)
realization.obj : error LNK2001: unresolved external symbol "public: static unsigned int w_v::sz" (?sz@w_v@@2IA)
C:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\kr09\Debug\kr09.exe : fatal error LNK1120: 1 unresolved externals


header.h
C++
1
2
3
4
5
6
7
#include <vector>
struct w_v
{
    static unsigned int sz;
    std::vector <double> vect;
};
w_v operator+(w_v a, w_v b);

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include "header.h"
using namespace std;
 
int main()
{   
    w_v a;
    w_v b;
    a.sz=10;
 
    a.vect.assign(10,1);
    b.vect.assign(10,2);
    w_v c=a+b;
    return 0;
};


realization.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include "header.h"
#include <vector>
w_v operator+(w_v a, w_v b)
{
    w_v c;
    c.sz=b.sz;
    for (int i=0; i<a.vect.size(); i++)
        c.vect.at(i)=a.vect.at(i)+b.vect.at(i);
    return c;
};
читал что ошибка возникает, если не описать обьявленую функцию, хотя я вроде все описал
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2010, 17:47
Ответы с готовыми решениями:

Векторы
Доброго времени суток! Очень нужна помощь в двух задачах. Заранее спасибо! 1. Дан целочисленный вектор С(6). Найти сумму тех его...

Векторы
Здравствуйте. Использую векторы типа vector&lt;string&gt; sentence;. Описываю их в классе в private объявляю vector&lt;string&gt; sentence;/ В...

Векторы
Определите полусумму длин двух векторов А(1,5; 2,5; -0,3) и В(-11,7; -9,3; 2,5; 3,7; -1,2). Вычислите, длины вектора оформив в виде функции.

15
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.12.2010, 18:32
Mee, static unsigned int sz;
Статический член - является прямым членом класса. А не членом объекта класса. Нужно инициализировать вне класса или использовать не статический член
0
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
13.12.2010, 19:34  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
Mee, static unsigned int sz;
Статический член - является прямым членом класса. А не членом объекта класса. Нужно инициализировать вне класса или использовать не статический член
как именно это сделать?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.12.2010, 19:49
Mee,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "header.h"
#include <vector>
 
w_v::sz=10;
 
w_v operator+(w_v a, w_v b)
{
        w_v c;
        c.sz=b.sz;
        for (int i=0; i<a.vect.size(); i++)
                c.vect.at(i)=a.vect.at(i)+b.vect.at(i);
        return c;
};
И из мейна убрать соответственно
C++
1
  a.sz=10;
И это бессмысленно
C++
1
        c.sz=b.sz;
Ибо этот член пренадлежит непосредственно классу. Он ОДИН на всю программу. Каждый класс который создается - создается со значением sz=10 (в данном случае).

А впринципе можно сделать и так.

C++
1
2
3
4
5
6
7
#include <vector>
struct w_v
{
        static const unsigned sz=10;
        std::vector <double> vect;
};
w_v operator+(w_v a, w_v b);
0
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
13.12.2010, 20:02  [ТС]
сделал все как вы сказали, теперь выбивает програму с ошибкой Debug Error.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.12.2010, 20:02
Mee, Пройдитесь пошагово.
Хотя я кажется итак знаю где у вас ошибка.
C++
1
        w_v c;
Напишите после этого.
C++
1
c.vect.resize(a.vect.size());
если у вас размеры векторов равны (я так понимаю что равны).
Или вместо.
C++
1
c.vect.at(i)=a.vect.at(i)+b.vect.at(i);
Напишите.
C++
1
c.vect.push_back(a.vect.at(i)+b.vect.at(i));
0
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
13.12.2010, 20:21  [ТС]
почему-то при i=1 не выполняется действие c.vect[i]=a.vect[i]+b.vect[i];, выбивает ошибку
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.12.2010, 20:24
Mee, После resize-а c или вы еще не пробовали с resize-ом?
0
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
13.12.2010, 20:33  [ТС]
у меня размер константой
C++
1
2
3
4
5
struct w_v
{
        static const unsigned sz=3;
        std::vector <double> vect;
};
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.12.2010, 20:37
Mee, Это конечно прекрасно)
И вы хотите сказать что при этом размер вектора в структуре так же равен 3?
0
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
13.12.2010, 21:24  [ТС]
создаю я векторы вот так
C++
1
2
3
4
5
    for (int i=0;i<w_v::sz;++i)
    {
        a.vect.push_back(i);
        b.vect.push_back(i);
    };
так что думал что да
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.12.2010, 21:26
Mee, Если так то да. Но вектор c то получается нулевого размера. Разве нет?
1
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
13.12.2010, 21:35  [ТС]
Выходит что да. И как с этим боротся?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.12.2010, 21:53
Mee, Поставить ра3мер вектора в функции
1
 Аватар для Mee
14 / 14 / 1
Регистрация: 05.07.2010
Сообщений: 88
13.12.2010, 22:31  [ТС]
а делаем мы это с помощью c.vect.resize(w_v::sz);?

огромное спасибо за потраченное время
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.12.2010, 23:25
Mee, Именно с помощью resize да
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2010, 23:25
Помогаю со студенческими работами здесь

Векторы!!!
Как найти произведение двух векторов и записать это в рабочем варианте допустим у меня 1 вектор(5,6,7) и второй (7,8,9) мне что нужно...

Векторы!
Введите вектор и найдите его норму: сумму абсолютных величин координат. Что значит сумму абсолютных величин координат. объясните сам...

Векторы
Изучаю сейчас библиотеку vector. #include &lt;vector&gt; int main() { std::vector&lt;int&gt; v(2); // Создаем вектор, состоящий из двух...

Векторы в с++
Привет мостера помогите решить задания. Реализовать структуру данных вектор, содержащий следующие методы: добавить...

Векторы
Имеется структура &quot;Магазины&quot;, где в качестве полей есть: Название, Город, Средняя зарплата сотрудников и Количество сотрудников. Также...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru