我经常使用指针,但是每当我和它们一起工作时,我觉得可能不会像我期望的那样工作.我的头脑不确定他们将如何表现.
你有什么建议?我想更好地学习指针.
例如:
unsigned int a; // value to merge in non-masked bits
unsigned int b; // value to merge in masked bits
unsigned int mask; // 1 where bits from b should be selected; 0 where from a.
unsigned int r; // result of (a & ~mask) | (b & mask) goes here
r = a ^ ((a ^ b) & mask);
Run Code Online (Sandbox Code Playgroud)
根据掩码合并来自两个值的位.
[取自这里 ]
在这种情况下,我可以看到它有效,但我不确定逻辑是什么?而且我不确定我是否可以从头开始创建自己的位操作.我该如何开始思考?
如果我做
double d = 34.56;
int i = (int)d;
Run Code Online (Sandbox Code Playgroud)
我不是"沮丧"吗?
要么
这个术语只用于类和对象吗?
我很困惑,因为在这种情况下,我们从一个更大的double到另一个更小的"向下倾斜" int,但是在课堂上,我们从一个较小的base class到另一个更"低调" derived class.
在某种意义上,这两种惯例是否相反?
CREATE PROCEDURE A(tab IN <table - what should I write here?>) AS
BEGIN
INSERT INTO tab VALUES(123);
END A;
Run Code Online (Sandbox Code Playgroud)
如何指定参数tab是表名?
vector<int> l;
for(int i=0;i<10;i++){
l.push_back(i);
}
Run Code Online (Sandbox Code Playgroud)
我希望向量只能存储指定范围(或集)中的数字.一般来说,怎么办呢?
特别是,我想限制向量只能存储单个数字.
所以,如果我做了l[9]++(在这种情况下l[9]是9),它应该给我一个错误或警告我.(因为10不是一位数字).同样,l[0]--应警告我.
有没有办法使用C++ STL vector?
vector<int>& mergesort(vector<int> &a) {
if (a.size() == 1) return a;
int middle = a.size() / 2;
vector<int>::const_iterator first = a.begin();
vector<int>::const_iterator mid = a.begin() + (middle - 1);
vector<int>::const_iterator last = a.end();
vector<int> ll(first, mid);
vector<int> rr(mid, last);
vector<int> l = mergesort(ll);
vector<int> r = mergesort(rr);
vector<int> result;
result.reserve(a.size());
int dp = 0, lp = 0, rp = 0;
while (dp < a.size()) {
if (lp == l.size()) {
result[dp] = (r[rp]);
rp++;
} else if (rp == r.size()) { …Run Code Online (Sandbox Code Playgroud) 在某些代码行中,我遇到了这个构造......
//void* v = void* value from an iterator
int i = (int)(long(v))
Run Code Online (Sandbox Code Playgroud)
这个结构有什么可能的用途?
为什么不简单地使用int(v)呢?为什么演员阵容long第一?
有时,对SQL*Plus的查询可能会在屏幕上产生太多行.
是否有一些相当于"管道到更少/更多"的机制,我可以做导航结果?
select * from emp | less
Run Code Online (Sandbox Code Playgroud) 错误
stack.cc:53:28: error: no matching function for call to ‘Stack<std::basic_string<char> >::push(std::string)’
stack.cc:53:28: note: candidate is:
stack.cc:32:11: note: Stack<T>& Stack<T>::push(T&) [with T = std::basic_string<char>]
Run Code Online (Sandbox Code Playgroud)
stack.cc
#include<iostream>
template <typename T>
class Stack {
private:
T* array_;
int length_;
T* last_;
void expandArray();
public:
Stack(int length = 8) {
array_ = new T[length];
length_ = length;
last_ = array_;
}
Stack<T>& push(T&);
T pop();
};
template<typename T>
void Stack<T>::expandArray() {
T* array_temp = new T[length_ << 1];
memcpy(array_temp, array_, length_);
std::swap(array_, array_temp);
delete[] …Run Code Online (Sandbox Code Playgroud) 我希望随机数生成可以用变量控制.例如,如果我说100,则应生成具有最大随机性的数字,如果我说50,则数字不应为"随机".如果我说'0',可能随机数根本不应该是随机数 - 也许所有生成的数字都是相同的.
知道我可以用什么来生成像这样的受控随机数?有没有想过是否有一些C++内置库,或者Boost库可以做到这一点?
有一种方法可以重新生成相同的随机数序列,因此种子生成器的方法也会很好.