我正在使用vector做某事并发现以下条件被评估为false,这是我无法理解的.
代码如下:
#include "stdio.h"
#include <vector>
using namespace std;
int main()
{
// an empty vector
vector<int> v;
// print 0
printf ("size of the vector is %d \n", v.size());
// the condition is false, why?
if (0 > v.size()-1) {
printf ("it should occur \n");
}
}
Run Code Online (Sandbox Code Playgroud) echo '60 test' | sed -r 's/(.*)\s+[^\s]+$/\1/'
Run Code Online (Sandbox Code Playgroud)
结果:
60测试
最后一列不删减。但它与
echo '60 home' | sed -r 's/(.*)\s+[^\s]+$/\1/'
Run Code Online (Sandbox Code Playgroud)
结果:
60
为什么?
我有几个通过指针共享数据的对象.指针参数是在构造函数中发送的,如下所示.
class A
{
public:
Shared* pB = new Shared();
User* object1 = new User(pB);
User* object2 = new User(pB);
}
class User
{
public:
User(Shared* pB) {m_sharedB = pB};
private:
Shared* m_sharedB;
}
class Shared
{
public:
struct Account
{
int account_number;
}
void method(){...};
}
Run Code Online (Sandbox Code Playgroud)
我的问题与C++析构函数有关.当object1被删除时,成员变量"m_sharedB"会发生什么?是否存在悬挂指针给其他同行的问题?