小编sar*_*ra8的帖子

cpp- lower_bound返回错误的迭代器

我有以下类Sudent,其函数名为isFail().如果等级<= 60,则此函数返回true,否则返回false.

class Student
{
    public:
        Student(std::string name_ , int const id_);
        virtual ~Student();
        void addGrade(int const grade2add);//grade above 100
        void removeGrade (int const grade2remove);  //update maxGrade
        bool isFail();//60-fail
        void print(); //id, name, grades

    private:
        std::string name;  //max 20 chars
        int const id; //5 digits, only digits
        std::vector<int> grades;

};
Run Code Online (Sandbox Code Playgroud)

我实现了isFail函数:

bool Student::isFail()
{
    int temp= *lower_bound(grades.begin(), grades.end(), 61);
    if (temp <= 60)
        return true;
    else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我看到在以下情况下:[100,98,96,60,95] Temp等于100(第一个元素)而不是60.

ps包含所有相关库以及使用命名空间std.

我阅读http://www.cplusplus.com/reference/algorithm/lower_bound/中的文档,根据他们的示例,它应该可以工作.

如果有更好的方法,请建议.

c++ vector

3
推荐指数
1
解决办法
694
查看次数

Python-如何验证字符串是否以特定字符串结尾?

我有以下字符串例如:' 24499 ? 00:02:05 sys-yg-ys'

如何验证字符串是否以函数结果中的字符串结尾(例如sys-yg-ys)?

我在上面的字符串上尝试了以下(仅检查简单的情况):result =''if(line.endswith('ys',len(line)-2,len(line)-1)):result ='true "

但是当我取得结果的价值时,我并没有成真.

python string

0
推荐指数
1
解决办法
3914
查看次数

makefile for c ++ 11不起作用

我是makefiles的新手.我创建了以下makefile:

CC=g++
DEBUG= -g
CFLAGS=-c -Wall -std=c++11 $(DEBUG)

all: hello

hello: ConsoleApplication1.o clock.o communication.o device_manager.o devices.o 
    $(CC) ConsoleApplication1.o clock.o communication.o device_manager.o devices.o 

ConsoleApplication1.o: ConsoleApplication1.cpp
        $(CC) $(CFGLAS) ConsoleApplication1.cpp

clock.o: clock.cpp clock.h
        $(CC) $(CFGLAS) clock.cpp

communication.o: communication.cpp 
        $(CC) $(CFGLAS) communication.cpp

device_manager.o: device_manager.cpp 
        $(CC) $(CFGLAS) device_manager.cpp

devices.o: devices.cpp 
        $(CC) $(CFGLAS) devices.cpp

clean:
    rm -rf *.o hello
Run Code Online (Sandbox Code Playgroud)

我将makefile放在所有代码文件的目录中,并从命令行运行命令"make".

我遇到了很多错误:

ConsoleApplication1.cpp:494:30:错误:'chrono'不是'std'mytime :: duration_timer_t计时器的成员; ^ ConsoleApplication1.cpp:494:30:错误:'chrono'不是'std'的成员ConsoleApplication1.cpp:494:55:错误:模板参数1无效mytime :: duration_timer_t timer; ^ ConsoleApplication1.cpp:494:65:错误:';'之前的声明中的类型无效 token mytime :: duration_timer_t timer; ^ ConsoleApplication1.cpp:495:11:错误:在'timer'中请求成员'set_duration',这是非类型'int'timer.set_duration(std :: chrono :: seconds(120)); ^ ConsoleApplication1.cpp:495:29:错误:'std :: chrono'尚未声明为timer.set_duration(std …

c++ makefile c++11

-3
推荐指数
1
解决办法
456
查看次数

标签 统计

c++ ×2

c++11 ×1

makefile ×1

python ×1

string ×1

vector ×1