Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
#1

Непонятная ошибка с вектором - C++

27.02.2013, 21:06. Просмотров 1614. Ответов 11
Метки нет (Все метки)

Пишу в VS ultimate 2012
Сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Rus");
 
    vector<int> v;
 
    v.push_back(4);
    v.push_back(2);
    v.push_back(3);
    v.push_back(1);
 
    v[0]=1;
    v[4]=4;
 
    for(int j=0;j<v.size();j++) //ошибка ссылается сюда
        cout<<v[j]<<' ';
    cout<<endl;
    system("pause");
    return 0;
}
Ошибка: warning C4018: <: несоответствие типов со знаком и без знака
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 21:06     Непонятная ошибка с вектором
Посмотрите здесь:

Ошибка при работе с вектором - C++
Добрый вечер. у меня есть класс рабочего табеля, в котором есть поле вектора, в каждом элементе содержится количество рабочих часов в...

Ошибка в коде(программа с вектором выполняется только если вызвать её второй раз) - C++
Сабж: void vInit() { vInputing(); // Ввод вектора vector_Size = names.size(); cout &lt;&lt; &quot;Ваш вектор names: &quot;...

Непонятная ошибка - C++
Мне дана матрица коэффициентов системы линейных уравнений в необычном виде: Исходная СЛУ 4x1 + 2x2 + 9x3 = 1 x2 + 6x3 = 7 4x1 + 2x3...

Непонятная ошибка - C++
Задание:С помощью табуляции сделать прогу,которая выводит таблицу.Надо ,чтоб там был цикл While /* * proga.cpp * * Created on:...

Непонятная ошибка - C++
Здравствуйте!Начинаю изучать C++,хотел сделать калькулятор логики,арифметический и закона Ома. После расчета в любом калькуляторе,кроме...

Непонятная ошибка - C++
Не могу понять, где неправильно. У меня есть такая матрица А 1 4 2 1 3 6 1 5 2 2 3 5 Мне же её надо преобразовать к такому...

непонятная ошибка( - C++
// 1.cpp : main project file. #include &quot;stdafx.h&quot; #include &lt;cstdio&gt; // бібліотека введення-виводу #include &lt;cstring&gt; //...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
27.02.2013, 21:08     Непонятная ошибка с вектором #2
C++
1
int j=0;j<v.size()
v.size() возвращает size_t, то бишь беззнаковый тип. А j у вас объявлена как int, то бишь знаковый тип.
А сравнение знаковых и беззнаковых чисел небезопасно.
Но это не ошибка и не мешает компиляции, если что.
BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
27.02.2013, 21:17  [ТС]     Непонятная ошибка с вектором #3
Цитата Сообщение от diagon Посмотреть сообщение
C++
1
int j=0;j<v.size()
v.size() возвращает size_t, то бишь беззнаковый тип. А j у вас объявлена как int, то бишь знаковый тип.
А сравнение знаковых и беззнаковых чисел небезопасно.
Но это не ошибка и не мешает компиляции, если что.
Если что,то у меня выбивает ошибку и программа НЕ РАБОТАЕТ,или вам просто хотелось показать свои высокие знания,думая,что я написал код не скомпилировав его и решил,от нех делать,выложить его сюда и озадачить людей?
Вот вбейте этот код у себя и поделитесь результатом

Добавлено через 2 минуты
У меня выскакивает ошибка Debag Assertion failed
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
27.02.2013, 21:20     Непонятная ошибка с вектором #4
BORSHEVIK, старина, у тебя в векторе 4 элемента. А ты пытаешься работать с 5-м посредством v[4].

C++
1
    v[4]=4;
Вот тут
BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
27.02.2013, 21:23  [ТС]     Непонятная ошибка с вектором #5
Цитата Сообщение от BORSHEVIK Посмотреть сообщение
Пишу в VS ultimate 2012
Сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Rus");
 
    vector<int> v;
 
    v.push_back(4);
    v.push_back(2);
    v.push_back(3);
    v.push_back(1);
 
    v[0]=1;
    v[4]=4;
 
    for(int j=0;j<v.size();j++) //ошибка ссылается сюда
        cout<<v[j]<<' ';
    cout<<endl;
    system("pause");
    return 0;
}
Ошибка: warning C4018: <: несоответствие типов со знаком и без знака
Я нашёл ошибку,в строке v[4]=4; ,а должно быть v[3]=4;получается,что 5 элемент нету,а попытка изменить его приводит к краху

Добавлено через 1 минуту
Цитата Сообщение от ITcrusader Посмотреть сообщение
BORSHEVIK, старина, у тебя в векторе 4 элемента. А ты пытаешься работать с 5-м посредством v[4].
Да,я уже сам увидел,но спасибо,что тоже заметили и сообщили. С самими векторами раньше дел не имел,но разве их нельзя наполнять как обычные массивы через индекс? только методом push_back?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.02.2013, 21:25     Непонятная ошибка с вектором #6
Цитата Сообщение от BORSHEVIK Посмотреть сообщение
Если что,то у меня выбивает ошибку и программа НЕ РАБОТАЕТ,или вам просто хотелось показать свои высокие знания,думая,что я написал код не скомпилировав его и решил,от нех делать,выложить его сюда и озадачить людей?
Вот вбейте этот код у себя и поделитесь результатом
Прежде чем претензии предъявлять, прочтите свой первый пост. Вопрос был по предупреждению: "warning C4018: <: несоответствие типов со знаком и без знака", на что вам и ответили. Где у вас, в первом восте, написано, что код не работает? Какой вопрос, такой и ответ.
BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
27.02.2013, 21:27  [ТС]     Непонятная ошибка с вектором #7
В общем я понял...Чтобы можно было работать через индекс,мне сначала нужно указать размер вектора...
Всё,спасибо всем,кто отозвался

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Прежде чем претензии предъявлять, прочтите свой первый пост. Вопрос был по предупреждению: "warning C4018: <: несоответствие типов со знаком и без знака", на что вам и ответили. Какой вопрос, такой и ответ.
может вопрос я задал не совсем корректно,но мне больше не нравится "Если что",когда люди умничают не по делу
alsav22
27.02.2013, 21:31
  #8

Не по теме:

Цитата Сообщение от BORSHEVIK Посмотреть сообщение
может вопрос я задал не совсем корректно,но мне больше не нравится "Если что",когда люди умничают не по делу
При чём здесь умничанье. Человек откуда знает: отличаете вы предупреждение от ошибки или нет? Он на всякий случай и написал.

BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
27.02.2013, 21:41  [ТС]     Непонятная ошибка с вектором #9
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:

При чём здесь умничанье. Человек откуда знает: отличаете вы предупреждение от ошибки или нет? Он на всякий случай и написал.

Перечитайте ЕЩЁ РАЗ,что я написал,мне не понравилось не то,на что он мне указал,а то,что это было сказано так,буду я элементарных вещей не понимаю,а именно в конце он добавил "ЕСЛИ ЧТО".И давайте закончим об этом,я претензий ни к нему и не к вам не имею,и проблема уже была решена.Тему можно закрывать или вообще удалить за неимением интеллектуальной важности и нужности
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
27.02.2013, 21:43     Непонятная ошибка с вектором #10
Цитата Сообщение от BORSHEVIK Посмотреть сообщение
С самими векторами раньше дел не имел,но разве их нельзя наполнять как обычные массивы через индекс? только методом push_back?
Нет, можно заранее выделить для них нужную память, например, объявить его так:

C++
1
vector<int> v(10); // теперь вектор содержит 10 элементов, для которых был выполнен конструктор по умолчанию
После этого с ними можно работать с помощью оператора [], но если нужно еще, придется пушить туда. И да, к тому же, оператор [] не производит контроля границ вектора, в отличае от оператора at(int), который выбрасывает исключение, если граница нарушена.
alsav22
27.02.2013, 22:11
  #11

Не по теме:

Цитата Сообщение от BORSHEVIK Посмотреть сообщение
это было сказано так,буду я элементарных вещей не понимаю
Если пишите про предупреждение, что это ошибка, то так и есть.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2013, 22:16     Непонятная ошибка с вектором
Еще ссылки по теме:

Непонятная ошибка - C++
Нужно считать в вектор пар все числа, отличные от нуля. В паре - первое число - всегда типа int, второе - double. Написал небольшую ф-цию....

Непонятная ошибка - C++
Пробую написать подключаемый модуль к файловому менеджеру ФАР. Программа, не хочет компилится, затсряла на непонятной ошибке Плагин...

Непонятная ошибка - C++
Программа должна заменять в строке все пары АВ на С, пишу в Visual Studio, после ввода строки открывается вкладка output.c и показывает...

Непонятная ошибка - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class CMessage { private: char *Text; char...

непонятная ошибка - C++
Люди срочно на помощь, в чем касяк // Экзам.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; ...


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

Или воспользуйтесь поиском по форуму:
BORSHEVIK
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 29
27.02.2013, 22:16  [ТС]     Непонятная ошибка с вектором #12
Цитата Сообщение от ITcrusader Посмотреть сообщение
Нет, можно заранее выделить для них нужную память, например, объявить его так:

C++
1
vector<int> v(10); // теперь вектор содержит 10 элементов, для которых был выполнен конструктор по умолчанию
После этого с ними можно работать с помощью оператора [], но если нужно еще, придется пушить туда. И да, к тому же, оператор [] не производит контроля границ вектора, в отличие от оператора at(int), который выбрасывает исключение, если граница нарушена.
Ну да,я вообще выше уже отписывался,что именно таким образом можно будет обращаться через индекс,но всё равно спасибо за помощь,приятно осознавать,что людям не всё равно
Yandex
Объявления
27.02.2013, 22:16     Непонятная ошибка с вектором
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru