标签: std

警告:fopen()调用

嗨,我正在用linux下的stdlib编程.

gcc针对以下代码行发出以下警告,任何想法为什么会这样?

FILE *fd;
if ( fd = fopen( filename, "rw" )== NULL )
{
Run Code Online (Sandbox Code Playgroud)

并且警告是:

warning: assignment makes pointer from integer without a cast.
Run Code Online (Sandbox Code Playgroud)

如何实现这一点,根据stdlib文档,fopen的返回类型是FILE*.那么为什么还有警告?有什么想法吗?

- 提前致谢 -

c fopen warnings std

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

是否可以以优雅的方式在vector <MyType>上运行标准算法?

我知道如果我有一个vector<int>我可以像这样运行算法:

int max = *max_element(myints.begin(), myints.end());
Run Code Online (Sandbox Code Playgroud)

但是如果我有一个vector<MyStruct>结构中的一个字段是int的话.有没有一种优雅的方法可以在我的所有结构中的int中运行算法?

c++ std c++11

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

std :: sort是否可能导致错误?

我的问题与有关,因为我解决了问题,我编写了自己的排序算法(简单的插入排序),并且它有效.我对此感到非常惊讶,因为我认为标准库已经过充分测试.是否有任何已知的特殊情况std::sort可能会搞乱?

c++ std

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

在c ++中使用exit()

由于某种原因,我在使用c ++中的exit()函数.我从mac运行狮子(64位)得到各种奇怪的错误.我正在编译使用g++ -o -g -Wall.

图表A:

 #include <iostream>
 int main(int arc, char *argv[]){
     exit(1);
 }
Run Code Online (Sandbox Code Playgroud)

终端输出如下所示

 $ g++ -o -g -Wall test main.cpp
 ld: in test, can't link with a main executable for architecture x86_64
 collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

$ g++ -o test main.cpp编译得很好.

使用#include<stdio.h>#include<stdlib.h>导致相同的编译错误.

我只是想知道是否有人能够立即看到这里发生了什么?

c++ std

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

将具有const字段的对象插入到容器中

假设我有:

class A {
public:
    const int x;
    A() : x(3) {}
}
Run Code Online (Sandbox Code Playgroud)

我想创造

std::vector<A>
Run Code Online (Sandbox Code Playgroud)

g ++抱怨默认赋值运算符在尝试执行时不起作用this->x = x,因为xconst是无法完成的.有没有办法解决?

c++ std assignment-operator

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

使用带有指向对象基类的函数在shared_ptr的向量上使用accumulate

我正在使用VS2008(所以我有TR1,但没有C++ 11),我不使用boost.以下描述是我真实问题的简化版本.

我有以下类层次结构:接口,实现它的抽象类和从该抽象类派生的几个类:

struct IMyInterface
{
    virtual void MinMax(int& Min, int& Max)const = 0;
};

class Base : public IMyInterface // Abstract
{
// ...
};

class A: public Base
{
public:
    virtual void MinMax(int& Min, int& Max)const { // Some stuff for A}
// ...
};

class B: public Base
{
public:
    virtual void MinMax(int& Min, int& Max)const { // Some stuff for B}
// ...
};
Run Code Online (Sandbox Code Playgroud)

然后我有一个到base类的shared_ptr向量:

// Somewhere in my code
typedef shared_ptr<Base> Base_sp;

vector<Base_sp> …
Run Code Online (Sandbox Code Playgroud)

c++ stl std

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

使用std :: find与operator ==时出错

我在以下结构上使用std :: find收到错误...

struct ComplianceOrderRecord {
    explicit ComplianceOrderRecord(IOrder& order);
    bool operator ==(const ComplianceOrderRecord& other) const;
    double price;
};

inline bool ComplianceOrderRecord::operator ==(const ComplianceOrderRecord& other) const {
    return price == other.price;
}
Run Code Online (Sandbox Code Playgroud)

我用它如下......

inline void Compliance::RemoveComplianceOrderRecord(const ComplianceOrderRecord& order) {
    auto it = std::find(m_compliantOrderList.begin(),
    m_compliantOrderList.end(), order);
    if(it == m_compliantOrderList.end()) {
        return;
    }
    m_compliantOrderList.erase(it);
}
Run Code Online (Sandbox Code Playgroud)

错误是......

error C2679: binary '==' : no operator found which takes a right-hand operand of type 'const ComplianceOrderRecord' (or there is no acceptable conversion)
Run Code Online (Sandbox Code Playgroud)

任何帮助理解这个错误将非常感激.

c++ std

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

stdio或stdlib中的system()?

我使用了system("pause")stdio.h,它没有错误地工作.当我查看stdio函数时,system()是在stdlib中.它是如何工作的,这是代码?

#include <stdio.h>

int main() {
    printf("Hello World\n" );
    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c std stdio

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

string(from substr)转换为unsigned int

我有一个字符串,实际上包含一个数字和一个字符串,,例如,由"12,fooBar".

我想将它放入分离的变量中,即数字输入unsigned int myNum和字符串输入std::string myStr.

我有以下剪辑代码:

size_t pos1=value.find(',');
std::cout << value.substr(0, pos1) << " and " 
          << (value.substr(0, pos1)).c_str() << std::endl;
Run Code Online (Sandbox Code Playgroud)

这产生了12 and 1.我错过了什么?2第二部分发生了什么?

注意:我将问题隔离到了这段代码中.我需要c_str()通过它atoi来获得unsigend int.在这里,我不想打印第二部分.

更新:我实际上从levelDB获取字符串Get.如果我把一个像我放在这里的测试字符串,它就可以了.

c++ string std substr leveldb

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

在函数内访问类似数组[]的向量

我想在"操纵向量"函数中访问向量,方法与访问带有vector [i]的数组相同,而不是在下面的代码中的(i)处使用vector->.我试图直接传递矢量,而不是像数组那样的指针.但这似乎破坏了该计划.任何想法如何实现这一目标?我是使用std库的新手,因为我主要有C的经验.

#include <vector>
#include <iostream>
#define vectorsize 5
struct st_test {
    int ii;
    float dd;
};

void manipulatevector(std::vector<struct st_test> *test) {
    test->resize(vectorsize);

    for(int i=0;i<vectorsize;i++) {
        test->at(i).dd = i*0.4f;
        test->at(i).ii = i;
    }
}

void manipulatearray(struct st_test test[vectorsize]) {
    for(int i=0;i<vectorsize;i++) {
        test[i].dd = i*0.4f;
        test[i].ii = i;
    }
}

void main() {
    std::vector<struct st_test> test1;
    manipulatevector(&test1);

    struct st_test test2[vectorsize];
    manipulatearray(test2);

    std::cout << "Vector" << std::endl;
    for(int i=0;i<vectorsize;i++) {
        std::cout << test1.at(i).dd << std::endl;
    }

    std::cout << "Array" << std::endl; …
Run Code Online (Sandbox Code Playgroud)

c++ vector std

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

标签 统计

std ×10

c++ ×8

c ×2

assignment-operator ×1

c++11 ×1

fopen ×1

leveldb ×1

stdio ×1

stl ×1

string ×1

substr ×1

vector ×1

warnings ×1