我有一个QTableView,我需要从所选行的第一个单元格获取值(字符串)(可以选择行上的任何单元格).但是,只有在选择了一行时才需要此值.
我想 - 我需要得到所选行的索引,然后得到该行上第一个сell的值,但我找不到办法.
我不明白为什么这给了我同样的答案:
long long a = 3265917058 >> 24;
std::cout << a << std::endl; //194
long long ip = 3265917058;
long long b = ip >> 24;
std::cout << b << std::endl; //194
Run Code Online (Sandbox Code Playgroud)
但这不是:
long long a = (3265917058 << 16) >> 24;
std::cout << a << std::endl; //240
long long ip = 3265917058;
long long b = (ip << 16) >> 24;
std::cout << b << std::endl; //12757488 - **i want this to be 240 too!**
Run Code Online (Sandbox Code Playgroud)
更新:我想要32位移位,但是我怎么能移动一个对于int变量来说太大的数字呢?Update2:我的答案是使unsigned int ip.那一切都会好的.
例如,如果我在shell中执行此操作
> db.numbers.save( { name: "fibonacci", arr: [0, 1, 1, 2, 3, 5, 8, 13, 21] } )
Run Code Online (Sandbox Code Playgroud)
然后我想进入arr我的c ++程序.
之后,我得到了我BSONObj可以得到name与
std::string name = p.getStringField("name");
Run Code Online (Sandbox Code Playgroud)
pBSON对象在哪里.
但是从数组中获取元素并将它们保存到std :: vector的正确方法是什么?
编辑:
经过一些研究后,我发现了BSONElement doxygen文档并做了这个.
std::vector<int> arr;
std::vector<BSONElement> v = p.getField("arr").Array();
for(std::vector<BSONElement>::iterator it = v.begin(); it != v.end(); ++it)
arr.push_back(it->numberInt());
Run Code Online (Sandbox Code Playgroud)
但我仍然不确定这是否正确.
在我的 Android.mk 文件中,我有这样的东西
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := testmodule
FILE_LIST := $(LOCAL_PATH)/include/md5/md5.?
FILE_LIST += $(LOCAL_PATH)/include/md5/md5main.?
FILE_LIST += $(wildcard $(LOCAL_PATH)/include/*.cpp)
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
但是当我运行时ndk-build- 我收到以下错误
Android NDK: WARNING: Unsupported source file extensions in /Users/some/path/jni/Android.mk for module testmodule
Android NDK: include/md5/md5.? include/md5/md5main.?
Run Code Online (Sandbox Code Playgroud)
(我在 OSX 10.9.2 上使用 android-ndk-r8c)
如何在 Android.mk 中添加 *.c 文件?我可能做错了什么?
(如果需要,我可以发布更多的 Android.mk 和 Application.mk)
我有一个带有标签的数组,这是一个文件的一部分,例如["红色","绿色","蓝色","白色","黑色"]
现在我想找到所有有红色和蓝色的文件.
这是在命名空间中使用函数的正确方法吗?我将在多个文件中#include?
test.h
#pragma once
#ifndef TEST
#define TEST
namespace test{
namespace {
bool test(){
return true;
}
}
}
#endif //TEST
Run Code Online (Sandbox Code Playgroud) 必须在编译时知道数组维度,这意味着维度必须是常量表达式
另外一点是这样的
unsigned count = 42; // not a constant expression
constexpr unsigned size = 42; // a constant expression
Run Code Online (Sandbox Code Playgroud)
我会,然后期望以下声明失败
a[count]; // Is an error according to Primer
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.编译并运行良好.
还有一点奇怪的是,++count;在数组声明之后也没有引起任何问题.
用-std=c++11flag打开的程序g++4.71
这是为什么?
我需要从具有.__str__()方法的类列表中获取一个字符串.
因此,药水是一类药水的对象列表.药水__str__方法只返回药水的名称.我想做这样的事情
result = "\n".join(potions)
Run Code Online (Sandbox Code Playgroud)
但只有字符串可以连接,我不知道如何调用连接__str__()中的每个类.
或者我应该做这样的事情:
for potion in potions:
result += "{0}\n".format(potion)
Run Code Online (Sandbox Code Playgroud)
或者可能是别的什么?
我正在学习有关的虚函数和我很困惑与下面的程序,我希望双方的结果a1.virFun(b1)和b1.virFun(b1)应返回"你好,从B",但该程序返回"你好,从A".这与我的理解相反.你能解释为什么b1.sayHello()没有被调用,即使我作为参数传递b1并且b1.sayHello()是虚函数.
#include<iostream>
using namespace std;
class A
{
public:
virtual void sayHello();
void virFun(A obj);
};
class B : public A
{
public:
void virFun(A obj);
virtual void sayHello();
};
void A::sayHello()
{
cout << "hello from A" << endl;
}
void B::sayHello()
{
cout <<"hello from B" << endl;
}
void A::virFun(A obj)
{
obj.sayHello();
}
void B::virFun(A obj)
{
obj.sayHello();
}
int main()
{
A a1;
B b1;
a1.virFun(b1);
b1.virFun(b1); …Run Code Online (Sandbox Code Playgroud) c++ ×6
mongodb ×2
qt ×2
android ×1
android-ndk ×1
arrays ×1
bit-shift ×1
bson ×1
c ×1
class ×1
constexpr ×1
generator ×1
inheritance ×1
join ×1
namespaces ×1
pragma ×1
python ×1
qtableview ×1
string ×1
vector ×1