小编pig*_*d10的帖子

缺少类型说明符 - 在C++中假设为Int

这些第二行是抛出这个错误,但我不确定为什么.

std::vector<std::string> weapons(100);
weapons[3] = "Rusty dagger";
Run Code Online (Sandbox Code Playgroud)

-

这是我的整个文件:

//global variables
#ifndef _GLOBAL_
#define _GLOBAL_

#include <vector>
#include <iostream>
#include <string>

//prototypes
void NPCTalk(std::string const& speaker,std::vector<std::string> const& text);
void wait(double seconds);
void regionChange(int amount);
int getPositionInStringVector(std::vector<std::string> const& vec,std::string value);

//variables
std::vector<std::string> weapons(100);
weapons[3] = "Rusty dagger";

//defines
#define RegionChange 3

#endif //__GLOBAL__
Run Code Online (Sandbox Code Playgroud)

c++ types specifier

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

使用c_str()设置char数组?

char el[3] = myvector[1].c_str();
Run Code Online (Sandbox Code Playgroud)

myvector[i] 是一个包含三个字母的字符串.为什么会出现此错误?

c++ arrays char c-str

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

'矢量迭代器不兼容'

std::vector<Enemy*>::iterator it;
for(it;it!=tracked.end();it++){
    (*it)->update(timeSinceLastFrame);
}
Run Code Online (Sandbox Code Playgroud)

tracked 是矢量:

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

为什么我收到此错误?(如果我没有提供足够的细节,请说明)

c++ iterator vector std

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

相当于C++中的Lua"和/或"?

在Lua中,你可以这样做:

foo = a and b or c and d or e
Run Code Online (Sandbox Code Playgroud)

这相当于(至少我相信它相当于):

local foo = nil
if a then
foo = b
elseif c then
foo = d
else
foo = e
end
Run Code Online (Sandbox Code Playgroud)

在C++中是否有与此类似或相似的内容?

c++ lua

3
推荐指数
2
解决办法
1979
查看次数

Project Euler#20的算法速度慢

这里有一个问题,我试图解决:http://projecteuler.net/problem=20(找到的数字在100的总和!)

我正在使用Lua,它只有一个数字类型的双倍,所以我不得不手动接近它.我使用的代码几乎与我用于问题16的代码相同,它类似(找到2 ^ 1000中的数字之和).然而,这次问题似乎超出了我的算法,在相当长的时间内解决 - 它达到了大约32!在我需要等待超过10秒才能计算下一个总数之前,我需要等待34个!它比我等待的时间更长.有什么方法可以加快速度(使用'原始'Lua - 而不是LuaJIT或类似的东西)?

local sum = {1}
for i=1,100 do
    local carry = 0
    for v=1,#sum do
        local c = carry
        carry = 0
        local t = sum[v] * i
        while t >= 10 do
            t = t - 10
            carry = carry + 1
        end
        local s = t + c
        while s >= 10 do
            s = s - 10
            carry = carry + 1
        end
        sum[v] = s
    end
    if …
Run Code Online (Sandbox Code Playgroud)

performance lua

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

C++中的动态数组

我试图找到一个数组的大小,并且sizeof不能正常工作,因为我的数组是一个指针,而不是一个实际的数组(然后再次,我可能是错的).我是C++的新手,但不是编程.

这是我的功能:

int getSizeOfPointerArray(int a[]){
    int n=0;
    while(true){
        if(!a[n]){
            cout << "a[" << n << "] doesn't exist, breaking" << endl;
            break;
        }
        cout << "a[" << n << "] exists with value " << a[n] << " at memory address " << &a[n] << endl;
        n++;
    }
    return n;
}
Run Code Online (Sandbox Code Playgroud)

使用参数p调用该函数,其中p为:

p = new (nothrow) int[f];
Run Code Online (Sandbox Code Playgroud)

'f'是3.数组的元素是用以下方法收集的:

for(n=0;n<f;n++){
    string c = ((n!=f-1)?", ":" ");
    cout << p[n] << c;
}
Run Code Online (Sandbox Code Playgroud)

我期待看到输出中打印的三个元素的内存位置 - 每个四个分开 - 并且说a [4]不存在.相反,它打印了六个 …

c++ arrays pointers

2
推荐指数
2
解决办法
571
查看次数

C++ std :: map s作为参数

我可以对任何类型的std :: map进行参数化吗?

void myFunction(const std::map<std::string,[INSERT_ANY_CLASS]>& tMap);
Run Code Online (Sandbox Code Playgroud)

c++ std map

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

随机整数列表

如果我有一个由一行上的空格分隔的整数列表(例如:50 34 1 3423 5 345)那么将每个整数变量作为单独的整数变量的最佳方法是什么 - 收集整数列表cin

c++ string integer list

1
推荐指数
2
解决办法
248
查看次数

非常基本的std :: vector迭代

std::vector<Ogre::SceneNode*>::iterator itr;
for(itr=mSelectedObjects.begin();itr!=mSelectedObjects.end();itr++){
    itr->showBoundingBox(true); //here
}
Run Code Online (Sandbox Code Playgroud)

我在标记的行上得到"表达式必须具有指针类型",我不知道为什么.有人可以帮忙吗?

c++ iteration vector std

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

map迭代器擦除不调用适当的析构函数

gameObjects是一个std::map<sf::String,VisibleGameObject*>,results是一个std::map<sf::String,VisibleGameObject*>::iterator.当这运行:

return gameObjects.erase(results);
Run Code Online (Sandbox Code Playgroud)

我期望VisibleGameObject的析构函数运行,这是:

VisibleGameObject::~VisibleGameObject(){
    m_pSceneManager->removeSprite(name);
}
Run Code Online (Sandbox Code Playgroud)

永远不会运行,直到持有的类gameObjects被销毁,然后运行:

GameObjectManager::~GameObjectManager(){
    std::for_each(gameObjects.begin(),gameObjects.end(),GameObjectDeallocator());
}

struct GameObjectDeallocator{
        void operator()(const std::pair<sf::String,VisibleGameObject*>&p) const{
            delete p.second;
        }
    };
Run Code Online (Sandbox Code Playgroud)

然后它确实运行.为什么不在第一种情况下运行?

使用SFML 2.0

谢谢

c++ stdmap sfml

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

标签 统计

c++ ×9

std ×3

arrays ×2

lua ×2

vector ×2

c-str ×1

char ×1

integer ×1

iteration ×1

iterator ×1

list ×1

map ×1

performance ×1

pointers ×1

sfml ×1

specifier ×1

stdmap ×1

string ×1

types ×1